1.降低app包大小
- 利用 AppCode 檢測(cè)未使用的代碼:菜單欄 -> Code -> Inspect Code
- 無損壓縮項(xiàng)目中的圖片資源,刪除無用資源圖片
- 編譯器優(yōu)化項(xiàng)目?jī)?yōu)化(編譯器優(yōu)化級(jí)別、去除符號(hào)信息)
- 去掉舍棄架構(gòu)armv7
2.如何優(yōu)化UITableview
- 正確的復(fù)用cell
- 盡量避免使用透明色
- 動(dòng)態(tài)計(jì)算并緩存行高,避免重新布局
- 加載網(wǎng)絡(luò)數(shù)據(jù),使用異步加載,緩存請(qǐng)求結(jié)果
- 滑動(dòng)很快時(shí),按需加載范圍內(nèi)的cell
- 刷新使用reloadSection
- cell中的控件盡量少,避免動(dòng)態(tài)的添加視圖
- 不要做多余的繪制工作
- 盡量少用xib
3.什么情況下會(huì)導(dǎo)致內(nèi)存泄漏
- NSTimer :self 持有 timer,timer 在初始化時(shí)持有 self,造成循環(huán)引用。 解決的方法就是,在dealloc方法以外,使用 invalidate 方法銷掉 timer。
- block : block中使用self時(shí),會(huì)導(dǎo)致self,block的互相持有,無法釋放。__weak修飾
- 代理使用Strong修飾也會(huì)導(dǎo)致
- 通知及kvo沒有移除監(jiān)聽也會(huì)導(dǎo)致內(nèi)存泄漏
- OC中直接運(yùn)用C語言 (靜態(tài)分析analyze)