命名规范,避免重名
-
加前缀避免命名冲突
- 所选前缀应与公司、应用程序或二者皆有关联,并在所有代码中均使用这一前缀
- 所选前缀应为三个字母以上(包含)
- 若自己所开发的程序中用到了第三方库,需为其名称增加前缀
- 为私有方法加前缀,与公共方法区分开
- 不要用"_"一个下划线的方法做前缀
- 第三方类添加分类,为其名称以及方法名加上专用前缀
-
命名方式
- 遵循驼峰式大小写命名法,方法、变量小写字母开头,其他单词首字母大写,类名首字母大写,且通常加上前缀。
- 方法名从左向右读起来通俗易懂(英文),不要使用缩略后的名称
- 要与代码框架整体风格相符合
头文件引用
在类的头文件中尽量少引入其他头文件
引用Objective-C或者Objective-C++的头文件时,使用#import
引用的是一个C或者C++的头文件时,使用#include,这时必须保证被引用的文件提供了保护域(#define guard),以保证代码在不同平台间共享时不出现问题。
引用与框架同名的头文件,而不是其它子模块的头文件。
尽量避免在pch中引用头文件,引用过多造成编译速度变慢。
代码格式化
类方法声明在方法类型与返回类型之间要有空格
条件判断的括号内侧不应有空格
关系运算符两边要有空格
-
方法内部尽可能早的返回错误
使用可读性更好的语法糖来构造NSArray,NSDictionary等数据结构,避免使用冗长的alloc,init方法
尽量使用不可变对象
nil检查,传入参数做保护处理
NSMutableDictionary->key&NSMutableArray不能插入nil
NSAttributedString
NSJSONSerialization,JSONObjectWithData
@{key:value},value不能为nil
strtoul([colorString UTF8String], colorString不能为nil
CFRelease传入值不能为nil
不要使用诸如 nil == Object 或者 Object == nil 的形式来判断
注意事项
- 使用length,对字符串类型做检查
- 在if else 判断中,必须加上{ },无论是判断语句是一句 还是多句。判断应该先筛除不符合的逻辑,然后处理重点逻辑
- 在init和dealloc中避免使用存取方法
注释
方法注释参数的意义,返回值,功能及可能的副作用。
协议,委托的注释要明确说明其被触发的条件
定义在头文件里的接口方法,属性必须要有注释。
如果在注释中要引用参数名或者方法函数名,可使用“||”将参数或方法括起来以避免歧义。
参考资料:《Effective Objective-C 2.0》
后续更新