一,內(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;