ios代码规范
1、变量命名
局部变量,首字母小写,驼峰命名,可以很长,但要把意思表达出来,例如
double delayInSeconds = 0.1f;//delayInSeconds表示延迟多长时间,单位是秒
dispatch_time_t delayForTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
类成员变量,首字母小写,驼峰命名,意思要表达清楚,例如
@property (nonatomic,strong) NSMutableArray *dataArray;//dataArray是一个可变数组,存放数据的
如果想把dataArray放在花括号里就如下命名,前缀加下划线
{
NSMutableArray *_dataArray;
}
在类里面调用时,使用self.dataArray进行引用,尽量不要使用_dataArray直接引用(除非没有getter方法)
2、宏定义、const和枚举常量命名,前缀为k,驼峰命名,例如
#define kTabTitleArray @[@“tab1”,@“tab2”,@“tab3”,@“tab4”]
NSString *const kLoginNotificationName = @"loginNotificationName";
typedef NS_ENUM(NSInteger, WeekDay) {
kWeekDayMonday = 1, //星期一
kWeekDayTuesday //星期二
};
3、方法命名
首字母小写,驼峰命名,要把意思表达的很清楚,参数前缀加小写a,例如
- (void)insertSections:(NSIndexSet *)aSections withRowAnimation:(UITableViewRowAnimation)aAnimation;
如果参数很多,就换行显示,例如
- (void)postLectureSendByMailWithUserId:(NSString *)userId
mailAddress:(NSString *)mailAdress
lectureId:(NSString *)lectureId
lectureName:(NSString *)lectureName
lectureFileUrl:(NSString *)lectureFileUrl;
4、类文件定义
头文件
从上往下顺序
import
宏定义
枚举定义
const常量
@class声明
@protocol
类声明,先写成员变量,再写方法,如果方法很多用pragma mark分段
源文件
import
宏定义
const常量
私有方法
类实现,使用pragma mark把代码分段,便于阅读
#pragma mark - Lifecycle
#pragma mark - Public Methods
#pragma mark - Private Methods
#pragma mark - TableView
#pragma mark - Delegate
#pragma mark - Notification
5、类文件组织,把属于一个模块的controller、model、view、resource文件都放到一个group里,把公共模块的文件放在公共的resource文件夹里
6、能用block的地方不用delegate
7、注释,建议安装VVDocument插件https://github.com/onevcat/VVDocumenter-Xcode,可以直接生成文档
1、变量命名
局部变量,首字母小写,驼峰命名,可以很长,但要把意思表达出来,例如
double delayInSeconds = 0.1f;//delayInSeconds表示延迟多长时间,单位是秒
dispatch_time_t delayForTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
类成员变量,首字母小写,驼峰命名,意思要表达清楚,例如
@property (nonatomic,strong) NSMutableArray *dataArray;//dataArray是一个可变数组,存放数据的
如果想把dataArray放在花括号里就如下命名,前缀加下划线
{
NSMutableArray *_dataArray;
}
在类里面调用时,使用self.dataArray进行引用,尽量不要使用_dataArray直接引用(除非没有getter方法)
2、宏定义、const和枚举常量命名,前缀为k,驼峰命名,例如
#define kTabTitleArray @[@“tab1”,@“tab2”,@“tab3”,@“tab4”]
NSString *const kLoginNotificationName = @"loginNotificationName";
typedef NS_ENUM(NSInteger, WeekDay) {
kWeekDayMonday = 1, //星期一
kWeekDayTuesday //星期二
};
3、方法命名
首字母小写,驼峰命名,要把意思表达的很清楚,参数前缀加小写a,例如
- (void)insertSections:(NSIndexSet *)aSections withRowAnimation:(UITableViewRowAnimation)aAnimation;
如果参数很多,就换行显示,例如
- (void)postLectureSendByMailWithUserId:(NSString *)userId
mailAddress:(NSString *)mailAdress
lectureId:(NSString *)lectureId
lectureName:(NSString *)lectureName
lectureFileUrl:(NSString *)lectureFileUrl;
4、类文件定义
头文件
从上往下顺序
import
宏定义
枚举定义
const常量
@class声明
@protocol
类声明,先写成员变量,再写方法,如果方法很多用pragma mark分段
源文件
import
宏定义
const常量
私有方法
类实现,使用pragma mark把代码分段,便于阅读
#pragma mark - Lifecycle
#pragma mark - Public Methods
#pragma mark - Private Methods
#pragma mark - TableView
#pragma mark - Delegate
#pragma mark - Notification
5、类文件组织,把属于一个模块的controller、model、view、resource文件都放到一个group里,把公共模块的文件放在公共的resource文件夹里
6、能用block的地方不用delegate
7、注释,建议安装VVDocument插件https://github.com/onevcat/VVDocumenter-Xcode,可以直接生成文档