第一章 熟悉Objective-C
2016-04-09 23:57
423 查看
第一条 了解Objective-C的起源
OC是C语言添加了面向对象的特性,是其超集,OC使用动态绑定的消息结构,也就是说在运行时候才会检查对象类型,接收一条消息,执行什么代码,由运行期环境而非编译器决定。第二条 在类的头文件中尽量少引入其他的头文件
除非有必要否则不要引入头文件,应该使用向前声明(forward declaring)来提及某一个类,然后在实现文件中引入那个类,这样做可以降低类之间的耦合性。第三条 多用字面量语法,少用与之等价的方法
使用字面量语法来创建字符串、数值、数组、字典。与常规方法相比更简明扼要。例子:
NSNumber *num = [NSNumber numberWithInt:1];
NSNumber *num = @1; 等等之类
应该通过取下角标操作来访问数组元素或字典中键所对的值
例子:
animals[1] instead of objectAtIndex
用字面量语法来创建字典或者数组时,若值中有nil则会抛出异常,所以要保证值中不存在nil。
第四条 多用类型常量,少用#define预处理指令
不要用预处理指令定义常量,这样的常量不含类型信息,编译器会在编译前进行查找与替换操作,即使重新定义常量值,编译器也不会产生警告,这会导致程序中常量值不一致。在实现文件中使用static const 来定义“只在编译单元内可见的常量”由于此类常量不在全局符号表中,所以无需为其命名加前缀。
在头文件中使用extern来声明全局变量,并在相关实现文件定义该值,这种常量要出现在全局符号表中,所以其名称要加以区隔,通常用相关类名做前缀。
第五条 用枚举表示状态、选项、状态码
应该用枚举表示状态机的状态,传递给方法的选项以及状态码等值,给这些值起个易懂的名字。如果把传递给某个方法的选项表示为枚举类型,而多个选项又可同时使用,那么就把各选项值定义为2的幂,以便通过按位或操作将其组合。
例子:
使用NS_ENUM和NS_OPTIONS宏来定义枚举类型,并指明其底层数据类型,这样做可以保证枚举是用开发者所选的底层数据类型实现出来的,而不会使用编译器所选用的类型。
在处理枚举类型的switch中不要实现default分支,这样加入新枚举之后编译器就会提示switch语句并未处理所有枚举。
相关文章推荐
- Objective-C的内省(Introspection)用法小结
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
- Objective-C中使用NSString类操作字符串的方法小结
- Objective-C中NSNumber与NSDictionary的用法简介
- Objective-C中NSLog输出格式大全
- 全面解析Objective-C中的block代码块的使用
- Swift调用Objective-C编写的API实例
- Swift、Objective-C、Cocoa混合编程设置指南
- Objective-c代码如何移植为Swift代码 Objective-c代码转移到Swift过程介绍
- Swift调用Objective-C代码
- 以实例讲解Objective-C中的KVO与KVC机制
- 简介Objective-C解析XML与JSON数据格式的方法
- 浅析Objective-C中分类Category的使用
- 举例讲解Objective-C中@property属性的用法
- Objective-C编程中语句和变量的一些编写规范建议
- 理解Objective-C的变量以及面相对象的继承特性
- 简单讲解Objective-C的基本特性及其内存管理方式
- Objective-C中编程中一些推荐的书写规范小结
- Objective-C处理空字符串和页面传值及自定义拷贝
- objective-c中生成随机数的方法