避免使用UIImage的imageNamed - 内存管理

Nit*_*ish 6 cocoa-touch memory-management uiimage ios

我正在浏览这个链接,在那里我遇到了一个避免UIImage的图像命名.为什么我们应该避免这个?

小智 7

它会缓存图像而不释放图像,直到它收到内存警告.我不确定,但我想如果你的应用程序有很多图像(大的),它可能会导致应用程序崩溃

对我来说,我通常使用"imageWithContentsOfFile":

[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:fileName ofType:nil]]
Run Code Online (Sandbox Code Playgroud)


Kri*_*dra 6

在Apple WWDC视频部分他们说imageNamed泄露了一次..但是不再这样做.我记得看过视频,但是不记得哪个视频部分..它是在2010年的WWDC我认为..ImageNamed仍然缓存图像..从文档imageNamed ..

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

但我认为这些缓存将在任何低内存条件发生时被清除.只是为了你的信息..我是imageNamed的狂热粉丝,我总是使用它..我从来没有任何内存问题..