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

待续....

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,695评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,569评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,130评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,648评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,655评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,268评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,835评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,740评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,286评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,375评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,505评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,873评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,357评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,466评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,921评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,515评论 2 359

推荐阅读更多精彩内容

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