您的位置:首页 > 移动开发 > Objective-C

第一章 熟悉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