美文网首页
重读effective objective 2.0 -1

重读effective objective 2.0 -1

作者: 我就是个伪程序媛 | 来源:发表于2017-02-20 19:39 被阅读38次

一年前购买了此书,但是简单看了一下就送人了,今日,项目待闲,看见同事有此书,翻来阅读,写点小小读书笔记,以供日后翻阅。

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;

相关文章

网友评论

      本文标题:重读effective objective 2.0 -1

      本文链接:https://www.haomeiwen.com/subject/qiqewttx.html