iOS内存泄漏,优化(持续更新!)

一,内存泄漏

1,报错:User-facing text should use localized string macro

解决方法一,将相对应的string改为NSLocalizedString(@"string", nil),相应的做好国际化工作.

解决方法二,如下图

iOS内存泄漏,优化(持续更新!)_第1张图片

2,报错如图:

解决方法:如图,

CGImageRef是定义在QuartzCore框架中的一个结构体指针,用C语言编写。所以需要手动释放!

3,在-(void)viewWillDisappear:(BOOL)animated 方法中,将NSTimer,block等可能造成强引用释放掉.如下图

iOS内存泄漏,优化(持续更新!)_第2张图片

二,内存优化

1,最经典的图片加载方法,imageNamed方法和imageWithContentsOfFile方法

imageNamed:会对图片进行缓存,同一图片不会重复加载,不能人为释放

imageWithContentsOfFile:不会对图片进行缓存,同一图片会重复加载,可人为释放

像可重用cell,大量重复使用图片的时候,必须选择imageNamed方法

只使用次数极其有限,层级较深,使用imageWithContentsOfFile方法

2,可重用cell的销毁,使用下面的两个方法,去掉展示完毕的cell

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

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

你可能感兴趣的:(iOS内存泄漏,优化(持续更新!))