编写OC代码时的注意事项
2016-07-30 09:57
288 查看
1.在类的头文件中尽量少引入其他头文件
当我们在类的头文件中导入另外一个文件#import “SomeClass.h”,将会增加编译时间,但是我们并不需要知道该类实现的全部细节,此时我们可以采用向前声明@class SomeClass;这样也会解决两个类相互引用的问题。
但是如果编写的类是继承自某个超类,或者遵从某个协议,那么这时需要在头文件中引入了。或者可以的话,将协议写在.m文件的分类中(class-continuation).
2.多用字面量语法,少用与之等价的方法
使用字面量语法更加易读,同事可以避免对象为nil时,初始化结束。比如一个数组NSArray *array = [NSArray arrayWithObject:object1, object2, object3, nil],如果object2为nil,那么该方法就会提前结束。
注意:使用字面量语法创建出来的对象是不可变的,所以我们要在创建可变版本的对象时添加mutablecopy.
3.多用类型常量,少用#define预处理指令
OC语言不同于C++,没有命名空间的概念,使用
此时预处理指令会将所有的duration替换为3.0,可能在其他文件中也声明了duration,也会被提换,并且也不知道该类型。
如果要在类中使用常量,在类的实现文件中使用static const 来定义,如果要使用全局常量,使用extern关键字,在.h文件中声明
在.m文件中实现
当我们在类的头文件中导入另外一个文件#import “SomeClass.h”,将会增加编译时间,但是我们并不需要知道该类实现的全部细节,此时我们可以采用向前声明@class SomeClass;这样也会解决两个类相互引用的问题。
但是如果编写的类是继承自某个超类,或者遵从某个协议,那么这时需要在头文件中引入了。或者可以的话,将协议写在.m文件的分类中(class-continuation).
2.多用字面量语法,少用与之等价的方法
使用字面量语法更加易读,同事可以避免对象为nil时,初始化结束。比如一个数组NSArray *array = [NSArray arrayWithObject:object1, object2, object3, nil],如果object2为nil,那么该方法就会提前结束。
注意:使用字面量语法创建出来的对象是不可变的,所以我们要在创建可变版本的对象时添加mutablecopy.
3.多用类型常量,少用#define预处理指令
OC语言不同于C++,没有命名空间的概念,使用
#define duration 3.0
此时预处理指令会将所有的duration替换为3.0,可能在其他文件中也声明了duration,也会被提换,并且也不知道该类型。
如果要在类中使用常量,在类的实现文件中使用static const 来定义,如果要使用全局常量,使用extern关键字,在.h文件中声明
extern NSString *const kModifyNotification;
在.m文件中实现
NSString *const kModifyNotification = @"modifyNotification";
相关文章推荐
- erlang 编写代码注意事项
- 普及几个编写代码的注意事项
- java代码编写注意事项
- 代码编写中的注意事项
- 【Python】python基础_代码编写注意事项
- 跨平台C、C++代码注意的事项及如何编写跨平台的C/C++代码
- 关于事务的代码编写注意事项
- 代码编写注意事项
- CSS3代码编写中有哪些注意事项?
- html / js 代码编写注意事项收集
- 关于安全编写代码的一些注意事项[参照msdn],这些在编程基础中都已经相当重要了!
- 从零开始攻略PHP(6)——代码重用与函数编写的一些注意事项
- 编写代码过程中,注意事项
- 编写Web前端代码的注意事项
- 编程新手编写代码注意事项
- 编写代码注意事项
- 编写代码时应该注意的一些地方
- .net中Web自定义控件编写的几个注意事项
- java-编写跨平台Java程序注意事项
- 编写跨平台Java程序注意事项