iOS编码需要注意的几点问题
2016-11-02 10:06
183 查看
所有逻辑判断需要添加注释说明。
所有变量、常量需要添加注释说明。
从网上拿到的数据最好先做非空转换,将数据插入数组或字典时做非空转换。
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而导致循环引用。
所有变量、常量需要添加注释说明。
从网上拿到的数据最好先做非空转换,将数据插入数组或字典时做非空转换。
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而导致循环引用。
相关文章推荐
- request.querystring("id")与request("id")的区别以及需要注意的编码问题
- 使用innerHTML时需要注意的几点问题
- 关于JSON.stringify和Unicode编码,需要注意的几点
- Qt 多线程与数据库操作需要注意的几点问题
- Qt 多线程与数据库操作需要注意的几点问题
- Openh323和Windows平台上关于G.723.1编码需要注意的一个问题
- Java应用打包后运行需要注意编码问题
- 关于JSON.stringify和Unicode编码,需要注意的几点
- ScrollView子View为自定义View时需要注意的几点问题
- Ubuntu Linux下Java Web应用程序需要注意的几点问题
- Java跨平台编码需要注意的几个问题
- 制作网页 完成后需要注意的编码问题
- CSS网页编码以前需要注意的十个问题
- Linux下Java Web应用程序需要注意的几点问题
- [iOS]应用上传APPStore需要注意的问题
- Mater-Details数据查询修改时,在用DetailsView进行新建,编辑(添加DropDownList控件)应用时需要注意的几点问题
- ARM指令需要注意的几点问题
- 支付宝接口需要特别注意的几点问题
- Qt 多线程与数据库操作需要注意的几点问题
- iOS_使用ARC需要注意的问题