如果代码不规范、布局混乱,开发者很难维护,后来者也很难接手,为了有一个良好的开发环境,保证APP有一个可持续的成长,使代码清晰简洁,方便阅读理解,代码规范是每一个程序员需要统一遵守的。
一 关于空行
A:.h中的空行
1,文件说明与头文件包涵(#import)之间空1行
2,头文件包涵(#import)之间,如果需要分类区别,各类别之间空1行
3,头文件包涵(#import)与@class之间空2行
4,@interface与@class之间空一行
5,头文件{}里面,不空行开始声明对象成员,如果需要分类区别,各类别之间空1行
6,{}外空1行,书写属性,如果需要分类区别,各类别之间空1行
7,空1行开始写方法,如果需要分类区别,各类别之间空1行
8,方法完成后,空1行@end
9,如果需要声明protocal,空2行接着写。通常protocal写在@interface前面,也可以另写一个文件
B:.m中的空行
1,文件说明与头文件包涵(#import)之间空1行
2,头文件包涵(#import)之间,如果需要分类区别,各类别之间空1行
3,头文件和@implementation之间空2行
3,@implementation和@synthesize之间空一行,@synthesize不要使用逗号(,)如果需要分类区别,各类别之间空1行
4,@synthesize与方法之间空2行
5,各方法之间空1行
C:方法里面的空行
1,变量声明后需要空1行,如果需要分类区别,各类别之间空1行
2,条件,循环,选择语句,整个语句结束,需要空1行
3,各功能块之间空1行
4,最后一个反括号之前不空行
5,注释与代码之间不空行
6,方法与#pragma mark之间空2行
二,关于空格
1,.h中协议<>与类名间有1个空格,每个协议与逗号不空格,逗号与下一个协议空1格,声明多个协议时,先声明系统的,再声明自定义的
2,.h中成员声明时,类型与变量之间有至少1各空格。星号(*)靠近变量,不靠近类型。(部分习惯,所有变量可以以*对齐,中间留空)
3,@property后有1各空格,()里面,逗号后有1个空格,括号外,先留1个空格,再声明属性
4,方法+,-后,与()之间有1个空格
5,返回类型与*之间有1个空格,方法参数中返回类型与*之间有1个空格
6,多参数的方法,每一个参数后面都有1个空格
7,if中若判断相等,()与==之间前后各有1个空格
8,运算符与数字之间前后各有1个空格
三,关于布尔值
1,不要用if(obj==nil){},而用if(!obj){}
2,比较时把常量放前面可以避免错误
不要用if(aIntValue==255){},而用if(255==aIntValue){},避免漏掉一个“=”,而变成赋值
3,不要用if(aBool==YES){},直接用if(aBool){}或if(!aBool){}
4,布尔类型的变量命名前加前缀b
四,变量属性名和其它
1,尽量在使用的时候才声明变量,尽量少用全局变量
2,变量名不要只使用一个字母,尽量能表示变量的意思
3,int类型的变量命名前加前缀i,float类型的变量命名前加前缀f,double类型的变量命名前加前缀d
4,协议protocls需要加#pragam marks-来区分,协议命名为类名加Delegate格式,首字母大写
5,viewControoler的.m文件里按照如下顺序布局:@interface(),#pragma mark - Init Function,#pragma mark - Life Cycle,#pragma mark -private methods, #pragma mark - Event Response,#pragma mark - UITableViewDelegate,#pragma mark - CustomDelegate,#pragma mark - Getters and Setters
6,{}采用上下对其的方式