OC学习----OC和C的对比

107 阅读2分钟

1.源文件的区别

  • C语言源文件包括.h头文件.c文件,其中.h是头文件,用于存放函数声明,.c语言源文件,用于实现头文件中声明的方法
  • OC中的源文件包括.h头文件.m文件,其中.h是头文件,头文件包含类,方法,属性的声明,.m文件是类的实现文件,参与编译的文件,用来实现类中声明的方法

2.关键字对比

  • OC在C的基础上增加了许多新的关键字,大部分以@开头

3.数据类型对比

4.流程控制语句对比

  • 增强for循环
for(NSString *name in NSArray){
    NSLog("%@",name)
}

5.函数(方法)定义和声明对比

  • C语言中函数的声明和实现
    • 函数声明:int sum(int a,int b);
    • 函数实现:int sum(iint a,in b){return a+b}
  • OC中的方法
    • 方法声明: -(int)sum:(int) a andB:(int)b;
    • 方法实现: -(int)sum:(int) a andB:(int)b{return a+b}
  • 注意:方法是能写在类里面,而函数可以写在任何地方
    • 对象方法,使用对象调用的方法
    • 类方法: 使用类名调用的方法
对象方法
-(id)initWithString:(NSString *) name;

类方法
+(MyClass *)createMyClassWithStirng: (NSString *)name;

6.面向对象新增特性

  • 封装
  • 继承
  • 多态

7.面向对象新增语法

  • 属性生成器(用来简化代码)
    • @property
    • @synthesize
  • 分类(在不修改原有类的起初上新增功能)
    • 分类与继承
    • 使用分类扩展类,无需子类化
  • 协议
    • 使用协议声明方法
    • 协议类似于C#,java中的接口
  • Foundation框架
    • 创建和管理集合,如数组和字典
    • 访问存储在应用程序中的图像和其他资源
    • 创建和管理字符串
    • 发布和观察通知
    • 创建日期和时间对象
    • 操控URL流
    • 异步执行代码

8.新增异常处理

  • @try...@catch...@finally