iOS內(nèi)存泄漏,優(yōu)化(持續(xù)更新!)

一,內(nèi)存泄漏

1,報(bào)錯(cuò):User-facing text should use localized string macro

解決方法一,將相對應(yīng)的string改為NSLocalizedString(@"string", nil),相應(yīng)的做好國際化工作.

解決方法二,如下圖

2,報(bào)錯(cuò)如圖:

解決方法:如圖,

CGImageRef是定義在QuartzCore框架中的一個(gè)結(jié)構(gòu)體指針,用C語言編寫。所以需要手動(dòng)釋放!

3,在-(void)viewWillDisappear:(BOOL)animated 方法中,將NSTimer,block等可能造成強(qiáng)引用釋放掉.如下圖

二,內(nèi)存優(yōu)化

1,最經(jīng)典的圖片加載方法,imageNamed方法和imageWithContentsOfFile方法

imageNamed:會(huì)對圖片進(jìn)行緩存,同一圖片不會(huì)重復(fù)加載,不能人為釋放

imageWithContentsOfFile:不會(huì)對圖片進(jìn)行緩存,同一圖片會(huì)重復(fù)加載,可人為釋放

像可重用cell,大量重復(fù)使用圖片的時(shí)候,必須選擇imageNamed方法

只使用次數(shù)極其有限,層級(jí)較深,使用imageWithContentsOfFile方法

2,可重用cell的銷毀,使用下面的兩個(gè)方法,去掉展示完畢的cell

-(void)collectionView:(UICollectionView *)collectionView didEndDisplayingCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath;

-(void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容