正文
};
5.宏要写成大写,至少要有大写,全部小写有时候书写不提示参数;
6.建议书写枚举模仿苹果——在列出枚举内容的同时绑定了枚举数据类型NSUInteger,这样带来的好处是增强的类型检查和更好的代码可读性,示例:
// 不推荐写法
typedef enum{
UIControlStateNormal = 0,
UIControlStateHighlighted = 1
UIControlStateDisabled = 1
} UIControlState;
// 推荐写法
typedef NS_OPTIONS(NSUInteger, UIControlState) {
UIControlStateNormal = 0,
UIControlStateHighlighted = 1
UIControlStateDisabled = 1
};
7.建议加载xib,xib名称用NSStringFromClass(),避免书写错误
// 推荐写法
[self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([DXRecommendTagVCell class]) bundle:nil] forCellReuseIdentifier:ID];
// 不推荐写法
[self.tableView registerNib:[UINib nibWithNibName:@"DXRecommendTagVCell" bundle:nil] forCellReuseIdentifier:ID];
8.场景需求:在继承中,凡是要求子类重写父类的方法必须先调用父类的这个方法进行初始化操作;建议:父类的方法名后面加上NS_REQUIRES_SUPER; 子类重写这个方法就会自动警告提示要调用这个super方法,示例代码
// 注意:父类中的方法加`NS_REQUIRES_SUPER`,子类重写才有警告提示
- (void)prepare NS_REQUIRES_SUPER;
9.建议书写属性名不要和系统一样,避免发生莫名其妙的问题;特别注意的是label;属性名不要写成textLabel
10.项目中添加plist类型文件,不要命名为info.plist,以防止和系统自带的文件重名,发生莫名其妙的问题;
11.如果控制器已经加载过,就不用再次加载,优化性能
if (vc.isViewLoaded) return;
12.id类型属性不能用点语法,调用get方法只能用中括号调用,[id 方法名],利用iOS9新特性泛型就可以; 比如数组;
@property (nonatomic,strong) NSMutableArray *topicsM;
13.如果不是属性,尽量不要点语法,一个老程序员的建议;
14.使用第三方框架,尽量不要更改内部文件,而应该再次封装,个性定制;
15.判断if书写方式
建议这样写