1. 注意以及注释
1.1 #pragma mark -(加横线)是用来 区分大模块的,首字母要大写。
1.2 #pragma mark(不加横线)是标注 小模块的, mark与函数第一行不要有空行,没有的模块不用写mark。
1.3 ///用于方法/属性注释
1.4 新建类需要在.h顶部的// Copyright 下面一行// 后标明该类的作用
2. 命名规范
2.1 常用的控件后缀名规则
UIButton :Btn
UILabel :Lab
UITableViewCell :Cell //项目中以创建了BaseTableCell,其中集成了一些主题色,cell的数据绑定公用方法,以及cell高度计算的公用方法,因此项目内自定义Cell大多需继承BaseTableCell
UITextField :Txf
UIView :V
ImageView :Img
UITableView :Table
UIScrollView :scroll
2.2 常用的类后缀名规则
UIViewController: VC //项目中以创建了BaseVC,其中集成了一些主题色,创建导航栏的内部方法,因此项目内自定义VC大多需继承BaseVC
UITableViewController: TableVC //项目中以创建了BaseTableVC,其中集成了一些主题色,创建导航栏的内部方法,以及涉及到table的相关方法,因此项目内自定义TableVC大多需继承BaseTableVC
2.3 model类命名规则
项目中以创建了BaseModel,其中集成了字典/数组转为model对象的公用方法,因此项目内所有自定义model需继承BaseModel
自定义Model类命名格式:以MO结尾
2.4 枚举
需要用到多个类型时,可以用枚举定义相关类型,命名规范为:枚举名_对应类型,每个枚举都需要备注该枚举对应什么类型
例:不可多选枚举
typedef NS_ENUM(NSInteger, LoginType)
{
LoginType_Phone = 0,//手机登录
LoginType_Email,//email登录
};
例:可多选枚举
typedef NS_OPTIONS(NSUInteger, SDWebImageOptions) {
SDWebImageRetryFailed = 1 << 0, //相当于2进制 1 十进制为1
SDWebImageLowPriority = 1 << 1,//相当于2进制 10 十进制为2
SDWebImageCacheMemoryOnly = 1 << 2,//相当于2进制 100 十进制为4
SDWebImageProgressiveDownload = 1 << 3,
SDWebImageRefreshCached = 1 << 4,
SDWebImageAvoidAutoSetImage = 1 << 11
};
3.VC类内的命名规范
3.1 初始化所有控件 统一一个方法名:initView
3.2 初始化数据 的方法名:initData
3.3 请求网络,统一方法名前缀req
3.4 类内部用#pragma mark - 区分模块,模块相关代码可放在其下。
3.5 lazy load 相关代码放在最后。
3.6 类名首字母大写,方法首字母小写,方法中的参数首字母小写,第二个参数名开始不要加"with", -, +号后面由一个空格
3.7 同时尽量让方法的命名读起来像一句话,能够传达出方法的意思
3.8 同时取值方法前不要加前缀“get”
3.9 自定义通知key前缀 NFCK
4. 变量命名
意思完整性, 变量的命名btn, img类型在特征词最后,如 sureBtn, homeVc, bgImg
5. 注意
5.1 初始化”id" 写成 "instancetype"
5.2 int 用NSInteger,float用CGFloat
5.3 注释灵活处理,复杂方法需要解释清楚
5.4 static const NSString * kLNasss = @""";
5.5 无需暴露给外部调用的方法,变量都放到.m里,不在.h中声明
5.6 注释灵活处理,复杂方法需要解释清楚
5.7 尽量别直接使用数字,字符串赋值,除非后面带上说明该值来历
5.8 固定的字符串、数字 。如果只有一处用了,就写死。尽量注释。
5.9 如果一个页面用多次,不可变就用static const 声明,可变就用属性去声明。需要暴露给其他类多次使用,就在这个类的.h 定义 define
5.10 如果多个页面 使用(多个地方 需要同时修改) 就定义成常量
5.11 if else/switch等条件判断,在每个分支上最好能写上对应的判断条件注释
网友评论