iOS高级-大量图片展示出现的内存警告问题

最近在做一个相册类的应用,但是在内存方面一直出现这一些问题,原因就是有着大量图片显示和存取,这里整理一下查到的资料,列举一下造成内存警告的潜在原因

1.imageName创建UIimage的时候实际上只是在Bundle内查找到文件名,然后把文件名返回,并没有对文件惊醒读取和解码,当UIImage第一次显示在屏幕的时候解码方法才会被调用,并且会保存到一个全局缓存当中,且APP第一次退出或者受到内存警告的时候才会被清空。!!!

2.imageWithData同样也不能避免缓存

3.如何避免缓存,把图片用 CGContextDrawImage() 绘制到画布上,然后把画布的数据取出来当作图片。

4.cell重用问题,老生常谈,要注意的就是footer header的复用,

- (nullable __kindof UITableViewHeaderFooterView *)dequeueReusableHeaderFooterViewWithIdentifier:(NSString *)identifier

究其原因,一方面是相片本身大小,iphone相机返回的照片都在2M左右,而每个app如果内存超过20M就会爆出内存警告,解决办法,压缩图片大小:

UIImageJPEGRepresentation(image1, kCompressionQuality)

原文地址:https://www.cnblogs.com/fanxinguu/p/5405083.html