避免UIImage的imageNamed – 内存pipe理

我正在通过这个链接,我碰到一个点避免UIImage的imageNamed 。 为什么我们应该避免这个?

谢谢,
尼蒂什

在苹果的WWDCvideo部分,他们说imageNamed泄露一次..但不再做..我记得看到的video,但不能记得哪个video部分..这是在2010年WWDC我认为..ImageNamed仍然caching图像..从文档imageNamed ..

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

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

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

对我来说,我通常使用“imageWithContentsOfFile”:

[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:fileName ofType:nil]] 

你应该把文章读到最后。

避免UIImage的imageNamed:Alex Curylo写了一篇关于UIImage的imageNamed:static方法问题的绝佳文章。 看起来(在我的testing中,这似乎是真的)iPhone操作系统(版本2.0和2.1至less)使用内部caching从磁盘使用imageNamed:加载的图像,并且在内存不足的情况下,这个caching不清除(尽pipe这似乎是用2.2版本纠正的,但我无法确认)。

它说,应该避免在2.0版本和2.1版本的SDK。 它已经工作很长时间了。

看看这个问题