一撬碟、tableview的優(yōu)化
- 1.提前計(jì)算并緩存好高度诞挨,因?yàn)閔eightForRow最頻繁的調(diào)用。
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath;
- 2.異步繪制呢蛤,遇到復(fù)雜界面惶傻,性能瓶頸時(shí),可能是突破口顾稀。
- 3.滑動(dòng)時(shí)按需加載达罗,這個(gè)在大量圖片展示,網(wǎng)絡(luò)加載時(shí)静秆,很管用(SDWebImage已經(jīng)實(shí)現(xiàn)異步加載)粮揉。
- 4.重用cells。
- 5.如果cell內(nèi)顯示得內(nèi)容來自web抚笔,使用異步加載扶认,緩存結(jié)果請(qǐng)求。當(dāng)cell中的部分View是非常獨(dú)立的殊橙,并且不便于重用的辐宾,而且“體積”非常小狱从,在內(nèi)存可控的前提下,我們完全可以將這些view緩存起來叠纹。當(dāng)然也是緩存在模型中季研。
- 6.少用或不用透明圖層,使用不透明視圖誉察。對(duì)于不透明的View与涡,設(shè)置opaque為YES,這樣在繪制該View時(shí)持偏,就不需要考慮被View覆蓋的其他內(nèi)容(盡量設(shè)置Cell的view為opaque驼卖,避免GPU對(duì)Cell下面的內(nèi)容也進(jìn)行繪制)
- 7.減少subViews。分析Cell結(jié)構(gòu)鸿秆,盡可能的將相同內(nèi)容的抽取到一種樣式Cell中酌畜,前面已經(jīng)提到了Cell的重用機(jī)制,這樣就能保證UITbaleView要顯示多少內(nèi)容卿叽,真正創(chuàng)建出的Cell可能只比屏幕顯示的Cell多一點(diǎn)桥胞。雖然Cell的’體積’可能會(huì)大點(diǎn),但是因?yàn)镃ell的數(shù)量不會(huì)很多考婴,完全可以接受的
- 8.少用addView給cell動(dòng)態(tài)添加view埠戳,可以初始化的時(shí)候就添加,然后通過hide控制是否顯示蕉扮。只定義一種Cell,那該如何顯示不同類型的內(nèi)容呢颗圣?答案就是喳钟,把所有不同類型的view都定義好,放在cell里面在岂,通過hidden顯示奔则、隱藏,來顯示不同類型的內(nèi)容蔽午。畢竟易茬,在用戶快速滑動(dòng)中,只是單純的顯示及老、隱藏subview比實(shí)時(shí)創(chuàng)建要快得多抽莱。
二、獲取崩潰日志
獲取崩潰日志的幾種方法:
- 1骄恶、當(dāng)用戶抱怨閃退時(shí)食铐,你可以要求他讓設(shè)備與iTunes同步,設(shè)備與電腦上的iTunes Store同步后僧鲁,會(huì)將崩潰日志保存在電腦上(路徑:Mac OS X:~/Library/Logs/CrashReporter/MobileDevice/)到上述位置把崩潰日志下載下來虐呻,然后通過電子郵件發(fā)送給你象泵;用這個(gè)方法獲取崩潰日志時(shí),你必需盡量獲取用戶設(shè)備生成的所有崩潰日志斟叼。因?yàn)楸罎⑷罩驹蕉嗯蓟荩驮饺菀自\斷問題所在。
- 2朗涩、如果你裝了Xcode忽孽,也能很容易通過Xcode從你的設(shè)備上獲得崩潰日志;將iOS設(shè)備連接到電腦上馋缅,然后打開Xcode扒腕;從菜單欄上選擇 Window菜單, 然后選擇 Organizer (快捷方式是 Shift-CMD-2)在Organizer 窗口上, 選中 Devices 標(biāo)簽欄,在左側(cè)的導(dǎo)航面板上萤悴,選中Device Logs瘾腰;LIBRARY下面的Device Logs是你所有設(shè)備(曾經(jīng)連接到Xcode的)的日志;每個(gè)設(shè)備下面的Device Logs是對(duì)應(yīng)設(shè)備的日志覆履。
- 3蹋盆、應(yīng)用提交到App Store后,你也能從 iTunes Connect 獲取到用戶的崩潰日志硝全,登錄到 iTunes Connect 上栖雾,選擇 Manage Your Applications, 點(diǎn)擊相應(yīng)的應(yīng)用伟众,點(diǎn)擊應(yīng)用圖標(biāo)下面的View Details按鈕析藕, 然后點(diǎn)擊右欄Links部分的 Crash Reports;如果沒有崩潰日志凳厢,試試點(diǎn)擊“refresh”按鈕刷新一下账胧。如果你的應(yīng)用用戶量還不多,或者剛上架不久先紫,iTunes Connect賬號(hào)上也可能還沒有任何崩潰日志治泥;如果有的話你就會(huì)看到不同iOS版本用戶下的崩潰信息。
- 4遮精、使用工具來獲取應(yīng)用程序崩潰日志居夹,工具(名稱:Bugly,網(wǎng)址:http://bugly.qq.com/)官網(wǎng)上由詳細(xì)的講解本冲,還附有Demo (友盟) (bugtags 網(wǎng)址:https://www.bugtags.com)等等准脂;
- 5、iphone崩潰日志分析工具symbolicatecrash眼俊;Symbolicatecrash是Xcode自帶的一個(gè)分析工具意狠,可以通過機(jī)器上的崩潰日志和應(yīng)用的.dSYM文件定位發(fā)生崩潰的位置,把crash日志中的地址替換成代碼相應(yīng)位置疮胖。