iOS 代码规范

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等条件判断,在每个分支上最好能写上对应的判断条件注释

待续....

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 编写的公司iOS端代码规范 (已经脱敏了) 注释规范 好的注释可以大大的提高代码的阅读性、也能让自己快速的看懂自己...
    灯泡虫阅读 1,068评论 0 5
  • -------------------------------------编码原则----------------...
    yanhooIT阅读 1,078评论 0 11
  • 公司代码规范(创业邦内部使用) 命名基础 在⾯面向对象软件库的设计过程中,开发人员经常忽视对类,方法,函数,常量以...
    xiao小马哥阅读 486评论 0 0
  • 这里有些关于编码风格Apple官方文档,如果有些东西没有提及,可以在以下文档来查找更多细节: The Object...
    Loki9527阅读 419评论 0 0
  • 1.指导原则 【原则 1】首先是为人编写程序,其次才是计算机。 说明:这是软件开发的基本要点,软件...
    半夏半暖半倾城灬阅读 1,227评论 0 0

友情链接更多精彩内容