例行逛CocoaChina的时候发现一位楼主分享了一份关于代码规范的文章,仔细对比了一下,着实有些惭愧
原文链接:http://www.cocoachina.com/ios/20170105/18515.html
将自己认为紧要的记录一下,以便自己学习改正
注释一定要写
自己管理的类一定注释属性用途 方法的用途 参数的说明 属性如果设置默认值 一定注明默认值是什么 如果方法内部存在逻辑判断 方法跳转 一定注释判断用法 方法跳转用法 除了初始化操作 其他声明变量 赋值 判断 应该注明注释用途 注释的写法
- Class类注释
- property属性的注释
- 方法的注释 如果有返回值 请加上return
- Block注释
- NSUM的注释
不允许外接修改的属性要设置readonly
对于只能获取的属性 一定写readonly
头文件引入的其他类 要使用@class
头文件引入的类使用@class声明不实用#import引入 可以防止互相引入 编译失败 不容易查找的BUG 造成的缺点 m文件还要#import 其他类调用这个类属性也要#import对应的类 综合来说宁愿自己多操作 也要防止这种循环引入的BUG的出现
BOOL类型属性的声明
属性set不要带is get要带is
控件命名的规范
对于命名一定不要简写 那篇很长的单词 但是一些单词就是简写的除外 比如WTO RMB UILabel结尾加上Label; UIImageView结尾记上ImageView 等等让其他的编程人员看名字就知道变量的用法 和属于什么控件
if判断里面的条件要提取出来
对于if里面很多的判断条件 要提取出来 方便之后进行断点测试
对于#define宏命名
单词全部的大写 单词之间用_分割
对于局部的变量尽量的初始化
局部的变量要初始化 属性有默认的值 所以我们不必须对于属性进行初始化
通知的移除
通知在dealloc要使用移除对象监听的方法
对于我们取值和存值的key要定义一下
定义一下key 方便我们使用 并且方便之后改名字
对于block的循环引用使用weakify 和strongify
属性要尽量使用懒加载
多使用字面量
字符串 @””
NSNumber @()
字典 @{}
数组 @[]
多用类型常量 少用#define
对于一些状态 选项的使用枚举
尽量少用根据数字判断状态少用字符串 数字判断状态
养成习惯把按照方法功能到分类里面
对于一些有按照功能类型的方法划分在一个分类里面 分类和之前类写在同一个文件
对于一些自己不确定的可以使用try catch
对于不知道后台返回什么类型的 可以使用try catch