1.原则
1.1 只遵循苹果公司发布代码中的主流代码风格,不参考任何第三方代码。
2.命名规范
2.1 变量、类名、函数名使用波浪式命名法,即碰到一个新的单词则使用大写字母开头,尽量使用完整的单词命名,尽量不采用缩写的单词命名;
2.2 全局变量使用 g_ 作为变量名前缀,静态变量使用 s_ 作为变量名前缀,其它情况不使用C/C++语言所提倡的匈牙利命名法;
2.3 类名使用大写字母打头,最好加上模块名称缩写作为前缀,如:HotMyself,NewsRootViewController;
2.4 类的成员变量,使用下划线打头,如:_age;
2.5 加方法和减方法的方法名一律以小写字母打头,如:createTableView;
2.6 临时变量和函数参数以小写字母打头;
2.7 禁止在项目中的任何地方,包括文件名、目录名、逻辑目录名、项目名,使用空格或中文字符。
3.结构管理
3.1 多个功能块共用的类,建立Common文件夹,放入其中。
3.2 plist,image,audio,video,buddle等相关资源,放入Support Files文件夹,并分别建立对应的文件夹。
3.3 第三方的类库/SDK,如UMeng、WeiboSDK、WeixinSDK等等专门存放在固定文件夹Vendors中,每个第三方库应该有属于自己的文件夹。
4.书写规范
4.1 @interface与@implementation与#import之间空一行。
4.2 属性的声明和实现,尽量避免书写@synthesize,如果用到@synthesize,要紧接着@implementation书写,不要空行;
4.3 成员变量尽量写在@implementation内部,有必要对外暴露时,才写在@interface下:
4.4 临时变量的声明,必须赋值初始化,如:NSInteger x = 0;
4.5 声明多个临时变量,必须另起一行,禁止如下写法:NSInteger x = 0, y = 0;
4.6 临时变量的声明语句写完后,必须隔行开始书写逻辑代码,逻辑代码中可以穿插临时变量的声明语句,同样必须隔行书写。
4.7 遇到新的代码块,必须隔行书写,包括函数的实现、if、switch分支语句、while、do…while、for循环语句等。
4.8 所有的逻辑块必须使用花括号包围,即使条件体只需编写一行代码也必须使用花括号。
4.9 所有的二元运算符,以空格隔开,如 x += 12; 不应写成 x+=12;
4.10 所有的逗号后都要追加一个空格,如:CGRectMake(1, 3, 5, 7);
4.11 指针的声明,写在变量前,类名和之间用空格隔开,禁止写成C/C++提倡的写法:NSObject* obj = nil;应写成NSObject *obj = nil;
4.12 使用@synthesize命令时,编译器会自动创建一个下划线_开头的实例变量,不需要同时声明实例变量和属性。
4.13 尽量使用NSInteger取代int、使用NSUInteger取代unsigned int; 4.14 代码的注释应写在对应代码的上方或右边,禁止将注释写在对应代码的下方;
4.15 类中的每个功能模块以#prama mark – 分隔,上空两行,下空一行。
4.16 release版本程序中一律不准使用NSLog代码。
4.17 程序中变量、方法命名尽量能以字面意思表示功能,对于需要用注释来解释的部分代码,注释以如下格式表述:
/**
方法或变量名说明
@param 参数1说明
@param 参数2说明
…
@return 若方法又返回值则对返回值作说明
*/