一年前购买了此书,但是简单看了一下就送人了,今日,项目待闲,看见同事有此书,翻来阅读,写点小小读书笔记,以供日后翻阅。
1 在类的头文件上尽量少引入其他头文件
(1) 除非有必要,否则尽量不要在头文件中引入其他文件。或者采用@Class这种向前声明的方式来提及其他类,且在实现中文件中引用该类的头文件。这样可降低类与类之间的耦合。
(2) 如果遇到无法使用向前声明的,类似声明某个类遵循的协议,遇到这样的情况,可以把"该类遵循的某协议"这条声明移至分类中。如果实行不通的话,可以把协议单独放在一个头文件中,再将其引入。当然“委托协议”是不用单独写一个头文件,对于这种,协议只有与接受协议委托的类放在一起定义才有意义,最好在实现文件中声明此类实现了该委托协议。
2 多用字面量语法,少用与之等价的方法
上范例:
NSArray *test = [NSArry arrayWithObjects:"A","B",nill];
=
NSArray *test = @["A","B"];
同理,数值,字典也均可用字面量的语法定义
3 多用类型常量,少用#define预处理指令
通过#define constant 3这样定义的常量
1)没有类型信息,
2)处理过程中会把碰倒的constant量通通修改为3,
3)再者,如果声明在某个头文件中,那么所有引用该头文件,其值均会为3。
所以一般常用static const NSTimeInterVal constant = 3这样的形式定义,变量一定要同时用static与const来声明。如果试图修改由const修饰符所声明的变量,那么编译器就会发脾气了。
4 用枚举表示状态、选项、状态码
在系统框架中频繁使用到enum,但是我们开发的时侯经常忽视它(至少我是这样,哈哈)。
enum state {
success,
fail,
};
typedef enum state state;