1、OC简介

全称:Objective-C,是扩充C的面向对象编程语言,主要用于iOS和Mac OS开发。

  • C语言的基础上,增加了一层最小的面向对象语法
  • 完全兼容C语言
  • 可以在OC代码中混入C语言代码,甚至是C++代码
  • 可以使用OC开发Mac OS X平台和iOS平台的应用程序

2、 OC语法概述

2.1关键字

每一种语言都有关键字,比如C语言的 flaot、int等等,那么oc有哪些关键字呢?

基本上所有关键字都是以@开头

下面列举一些常见的关键字,可以先预览一下,不用去翻资料查找它们的含义

@interface、@implementation、@end 

@public、@protected、@private、@selector 

@try、@catch、@throw、@finally  

@protocol、@optional、@required、@class

@property、@synthesize、@dynamic

self、super、id、_cmd、__block、__strong、__weak

2.2 字符串以@开头

比如@“Hello"是OC中的字符串,而"Hello"则是C语言中的字符串

2.3 其他语法

2.4  NSLog与printf的区别

  • NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
  • NSLog输出后会自动换行,printf输出后不会自动换行set方法和get方法
  • 使用NSLog需要#import <Foundation/Foundation.h>
  • 使用printf需要#include <stdio.h>

2.5 Foundation框架的作用

开发OC、iOS、Mac程序必备的框架

  • 此框架中包含了很多常用的API(应用编程接口)
  • 框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可

#import <Foundation/Foundation.h>

3、 OC与其他语言的区别

3.1 Objective-C同C的异同:

  1、C作为一种结构化语言,层次清晰,便于按模块化方式组织程序,易于调试和维护;Objecive-C扩展了C 语言使它具备面向对象设计的能力,例如类、消息‘继承;同时在Objective-C的代码中可以有C和C++语句,它可以调用C的函数,也可以通过C++对象访问方法;

  2、C表现能力和处理能力极强。可以直接访问内存的物理地址,进行位(bit)一级的操作;C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体—既可用于系统软件的开发,也适合于应用软件的开发;Objective-C可以实现底层系统编程,另一方面可以支持利用动态架构进行开发。

3.2 Objective-C同C++的异同:

1、单一继承:

和Java、Smalltalk一样,Objective-C不支持多重继承,而C++语言支持多重继承。

2、动态:

Objective-C是动态定型(dynamicaly typed),它的类库比C++容易操作。Objective-C 在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类。

4、OC的学习方法

在掌握C语言之后,学习OC是比较轻松的。由于OC是面向对象的语言,C语言是面向过程语言,所以学完C语言之后,还需要掌握一些面向对象的知识。只要按照方法得当、循序渐进的学习,就可以学好。OC的学习大致可以分为这些个方面:

1、面向对象编程

2、类和对象

3、创建类和对象

4、set方法和get方法

5、类方法和对象方法

6、self等关键字

7、继承和多态

8、字符串简单的使用

9、分类Category

10、内存管理

11、协议代理

12、Block

13、单例

14、ARC

15、字符串的使用

16、Foundation框架

Objective-C简介的更多相关文章

  1. Automake

    Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...

  2. Objective-C(一简介)

    Objective-C简介 通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言.它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统, ...

  3. ios 多线程开发(一)简介

    简介 线程是在一个程序中并发的执行代码的方法之一.虽然有一些新的技术(operations, GCD)提供了更先进高效的并发实现,OS X和iOS同时也提供了创建和维护线程的接口. 这里将要介绍线程相 ...

  4. Objective C Runtime 开发介绍

    简介 Objective c 语言尽可能的把决定从编译推迟到链接到运行时.只要可能,它就会动态的处理事情.这就意味着它不仅仅需要一个编译器,也需要一个运行时系统来执行变异好的代码.运行时系统就好像是O ...

  5. APP自动化框架LazyAndroid使用手册(1)--框架简介

    作者:cryanimal  QQ:164166060 APP自动化简介 APP自动化,即通过自动化的方式,对APP施行一系列的仿按键输入.触摸屏输入.手势输入等操作,以达到对APP的功能进行自动化测试 ...

  6. 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

    一. iOS 项目简介 1. iOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类 ...

  7. Appium简介

    Appium简介 Appium is an open source test automation framework for use with native, hybrid and mobile w ...

  8. CMarkup成员方法简介 (转)

    CMarkup成员方法简介 (转) 转自:http://blog.csdn.net/magictong/article/details/6669837翻译:magictong(童磊)2011年7月版权 ...

  9. 001.SQLServer高可用简介

    一 SQLServer高可用集群相关概念 1.1 Windows故障转移群集 Windows故障转移群集是由多个服务器组成的共同提供某高可用服务,该服务用于防止单台服务器故障导致服务失效.故障转移群集 ...

  10. python的简介与简单使用

    简介: python的诞生 创始人:Guido van Rossum(荷兰人:吉多) 时间:1989年 特点: 1.简单明了,容易上手 2.多平台,`全面发展,平衡发展, 3.胶水语言,有大量的库 其 ...

随机推荐

  1. MySQL中支持emoji表情的存储

    由于需要实现emoji表情评论的功能,所以数据库需要支持emoji表情的存储,根据查询的资料最终实现了该功能,现将实现的过程以及过程遇到的一些问题记录下来,供大家参考和交流. mysql的utf8编码 ...

  2. javase基础回顾(三) 动态代理

    动态代理是大型框架中经常用到的经典的技术之一,博主在理解spring的控制反转(依赖注入)的思想时回头着重复习了一下java的动态代理. 在说动态代理之前我们先简单说一说代理是用来干什么的,用于什么样 ...

  3. TensorFlow中的设备管理——Device的创建与注册机制

    背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 作为一款优秀的异构深度学习算法框架,TensorFlow可以在多种设备上运行算 ...

  4. 翻译:update语句(已提交到MariaDB官方手册)

    本文为mariadb官方手册:UPDATE的译文. 原文:https://mariadb.com/kb/en/update/ 我提交到MariaDB官方手册的译文:https://mariadb.co ...

  5. mybatis-generator插件执行报错:Cannot resolve classpath entry

    记录一个小问题 使用了mybatis-generator插件自动生成实体类,DAO,Mapper,在执行时报错.报错信息如下 Failed to execute goal org.mybatis.ge ...

  6. YARN集群的mapreduce测试(三)

    将user表.group表.order表关:(类似于多表关联查询) 测试准备: 首先同步时间,然后 开启hdfs集群,开启yarn集群:在本地"/home/hadoop/test/" ...

  7. 使用PoolingHttpClientConnectionManager解决友盟(umeng)推送在多线程环境推送失败的问题

    在友盟(umeng)提供的服务端推送的sdk中,使用的是apache提供的httpclient.在单线程化境下,httpclient工作没有问题.但是由于umeng的sdk中并未考虑并发的情况,因此很 ...

  8. c# 接口的协变和逆变

    如果派生类只是用于输出值,那么这种结构化的委托有效性之间的常数关系叫做协变 就是创建一个派生类委托对象 让派生类赋值给基类对象 协变关键字out 对期望传入基类时允许传入派生对象的特性叫逆变  逆变关 ...

  9. 表单时间和定时器this的指向

    1.针对表单的 form 表单  input 输入框 select 下拉列表  textarea 文本域 type 类型 radio 单选框 checkbox 多选框 password 密码框 but ...

  10. Java集合框架学习

    集合框架 集合框架的目标 该框架必须是高性能的.基本集合(动态数组,链表,树,哈希表)的实现必须是高效的. 该框架允许 不同类型的集合,以类似的方式工作,具有高度的互操作性. 对一个集合的扩展和适应必 ...