iOS开发 性能优化
2021-01-07 本文已影响0人
喜剧收尾_XWX
1.降低app包大小
- 利用 AppCode 检测未使用的代码:菜单栏 -> Code -> Inspect Code
- 无损压缩项目中的图片资源,删除无用资源图片
- 编译器优化项目优化(编译器优化级别、去除符号信息)
- 去掉舍弃架构armv7
2.如何优化UITableview
- 正确的复用cell
- 尽量避免使用透明色
- 动态计算并缓存行高,避免重新布局
- 加载网络数据,使用异步加载,缓存请求结果
- 滑动很快时,按需加载范围内的cell
- 刷新使用reloadSection
- cell中的控件尽量少,避免动态的添加视图
- 不要做多余的绘制工作
- 尽量少用xib
3.什么情况下会导致内存泄漏
- NSTimer :self 持有 timer,timer 在初始化时持有 self,造成循环引用。 解决的方法就是,在dealloc方法以外,使用 invalidate 方法销掉 timer。
- block : block中使用self时,会导致self,block的互相持有,无法释放。__weak修饰
- 代理使用Strong修饰也会导致
- 通知及kvo没有移除监听也会导致内存泄漏
- OC中直接运用C语言 (静态分析analyze)