iOS代码规范

时间:2022-06-01 18:21:29

一、文档结构管理

1.建立Libraries文件夹,所有第三方库放入其中。

2.建立Utilities文件夹,自已封装的类放入其中。

3.建立Constants.h头文件,所有的常量定义于其中。Constants.h文件放入Utilities文件组里面。

4.建立Model、View、Controller三个文件夹,每个文件夹里按功能模块分组(例如tabbar里5个模块)

5.建立Images文件夹。图片放入其中。

6.建立Network文件夹。网络请求类放入其中。

7.建立DataBase文件夹。数据缓存类放入其中。

二、编码规范

说明:为了不影响阅读,一个类的代码行数尽量不要超过500行;一个方法尽量不要超过30行。有超过的在重构的时候想办法分解(不要刻意重构)。

1.每个.h文件最开始处用简短文字说明一下该类的功能逻辑。

2.引入其它类时,若要作为实例变量的在.h中引入。否则在.m中引入。

3.声明实例变量一律以属性声明。

4.类中第个功能模块以 #pragma mark -  分隔,上空两行,下空一行。

5.程序中变量、方法命名尽量能以字面意思表示功能,对于需要用注释来解释的部分代码,注释以如下格式表述:

/**

* 方法或变量说明

* @param 参数1说明(针对方法)

* @param 参数2说明(针对方法)

* @return 若方法有返回值则对返回值作说明

*/

或者

//简短的描述语句  (在方法前或者变量后)

6.类名首字母大写,方法首字母小写,方法中的参数首字母小写,同时尽量让方法的命名读起来像一句话,能够传达出方法的意思,同时取值方法前不要加前

缀“get” 变量名小写字母开头,常量以小写字母k开头,后续首字母大写

7.写delegate的时候类型应该为weak弱引用,以避免循环引用

8.实例变量声明时变量名前面加下划线“_”,局部变量不用加。

9.通知中心注册需要在dealloc中对应remove掉对象,一个对象的delegate对象要在dealloc中及时赋nil。

10.移动端遇到一个常识问题 c = a/b; 没有做任何判断这家出现这样的语句,如果b万一为0呢?是吧所以必须if(b){c= a/b}。

11.一般判断BOOL的时候  例如:BOOL A = [object  action];不要直接if(A == YES)这样判断 直接if(A)

三、Xcode配置

1.全部统一用ARC。

2.用Cornerstone管理代码。

3.在项目.pch文件加入一段去除release的NSLog代码:

#ifndef __OPTIMIZE__

#define NSLog(...) NSLog(__VA_ARGS__)

#else

#define NSLog(...) {}

#endif