减少UIImage内存使用量

时间:2011-11-25 20:36:55

标签: iphone memory-management uiimage

我正试图找到减少我的应用程序的内存使用量的方法,我对UIImages有了一个想法。我广泛使用UIImages,其中一些是多个视图共有的。实例化单个UIImage,然后在整个应用程序中使用指向同一图像的指针,而不是在每个视图中为同一图像分配新的UIImage,是否内存效率更高?或者,操作系统是否足够智能以自动缓存UIImage,以便它只存储在内存中一次? (怀疑是这种情况,但我不得不问)

感谢。

4 个答案:

答案 0 :(得分:3)

直接从UIImage apple reference docs imageNamed:

  

此方法在系统缓存中查找具有的图像对象   指定名称并返回该对象(如果存在)。如果匹配   图像对象尚未在缓存中,此方法加载图像   来自指定文件的数据,缓存它,然后返回   结果对象。

答案 1 :(得分:1)

您使用了大量图片,因此请记住[UIImage imageNamed:@""];缓存图片,因此如果您遇到内存不足问题,请使用不缓存它的[UIImage imageWithContentsOfFile:@""];。也许这可以帮助你减少内存使用量。

答案 2 :(得分:0)

当视图卸载时,在viewDidUnload子类的UIViewController方法中将GUI属性设置为nil。

答案 3 :(得分:-1)

是的,存储单个UIImage并使用指针更有效。

操作系统不太可能以这种方式缓存图像,即使这样做,使用指针可以更好地控制图像的释放/解除分配时间,这样您就不必希望操作系统能够搞定此事。