- 所有逻辑判断需要添加注释说明。
- 所有变量、常量需要添加注释说明。
- 从网上拿到的数据最好先做非空转换,将数据插入数组或字典时做非空转换。
- delegate 对象使用 weak,禁止使用 strong。
- 单一职责原则:一个类只能干一个事情,一个方法最好也只干一件事情。不允许一个方法既处理逻辑,又绘制UI。
- 健壮性
是否考虑线程安全
边界处理是否完整
逻辑是否健壮
是否有内存泄漏
有没有循环引用
有没有野指针
- 碰到添加阴影时,注意性能。
- 按钮独占事件要添加,防止多个按钮同时点击的情况出现。
- 当一个界面有push和pop的时候,两个操作相隔时间很短,一个动画未结束,另外一个动画已经开始,导致动画冲突crash,应添加如下代码
if (self.navigationController.topViewController != self){} - 加载一次性大图片并且不在tableview中使用时用imageWithContentsOfFile(如新版本引导页,背景大图片等不需要一直放在应用缓存中的图片)。小图片或者在tableview中使用的图片可以用imageNamed。
- 注意做好单元测试,保证在页面返回时执行到dealloc方法
- 在做writeToFile读写操作时,记得加try catch或者线程锁,防止多线程同时修改和写入同一个文件导致Crash
- 页面退出时,要将定时器关闭,将通知关闭。
- 使用block不可以持有self,如果在block中有执行self方法或者属性,必须先将self置为weak,在block内置为strong。
- 在控制器回退时,如果控制器中有NSTimer倒计时,必须将倒计时关闭
- 子视图引用父视图时,要使用weak,不允许使用strong而导致循环引用。