PNG图像从未取消分配

giu*_*ppe 2 memory-management instruments ios

内存调试仍然很痛苦.我使用导航控制器加载了4个VC.每个VC都有自己的PNG图像,用于多个控件.在Instruments中,我意识到大多数VM区域都被ImageIO_PNG_Data占用.当我推送/弹出VC时,那些VM增加并且永不减少(我假设dealloc某些VC也会释放图像). 在此输入图像描述

当然,调试是在模拟器中完成的.

Tom*_*mmy 6

关于rokjarc的评论略有扩展:

UIImage +imageNamed:显式缓存.文件说明:

此方法在系统缓存中查找具有指定名称的图像对象,并返回该对象(如果存在).如果匹配的图像对象是不是已经在高速缓存中,这种方法加载从指定的文件中的图像数据,高速缓存,然后返回生成的对象.

因此,先前加载的图像将保留在缓存中,除非或直到其他地方需要内存.不必要地从释放内存中获得效率.

如果你想以任何理由避免缓存 - 我会争论任何虚假的原因 - 你可以使用+imageWithContentsOfFile:,或正常的init等价,已经获得了完整的路径NSBundle.

根据我的意识,将通过缓存访问通过界面构建​​器设置为图像视图和其他位置的PNG.