Evita la image de UIImage: gestión de memory

Estaba revisando este enlace, donde encontré un punto. Evita la image de UIImage . ¿Por qué razón debemos evitar esto?

Gracias,
Nitish

En la sección de videos de Apple WWDC dicen que imageNamed se filtró una vez … pero ya no … Recuerdo haber visto el video, pero no puedo recordar qué sección de video … Fue en WWDC 2010, creo … Image Still entra en caching de imágenes. De la documentation de imageNamed ..

Este método busca en las cachings del sistema un object de image con el nombre especificado y devuelve ese object si existe. Si un object de image coincidente no está en la caching, este método carga los datos de la image del file especificado, lo almacena en caching y luego devuelve el object resultante.

Pero creo que estos caching se borrarán cuando ocurra cualquier condición de poca memory. Solo por tu información … Soy un ávido fanático de imageNamed y siempre lo uso … Nunca tuve problemas de memory con él.

Guarda en caching las imágenes y no las libera, hasta que recibe una advertencia de memory. No estoy seguro, pero creo que podría ser propenso a lockings de la aplicación, si su aplicación tiene muchas imágenes (grandes)

Para mí, normalmente uso "imageWithContentsOfFile":

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

Debes leer el artículo hasta el final.

Evite la image de UIImage: Alex Curylo ha escrito un artículo absolutamente excelente sobre los problemas con el método imageNamed: static de UIImage. Parece (y en mis testings esto parece ser cierto) que el iPhone OS (versiones 2.0 y 2.1 al less) utiliza un caching interno para imágenes cargadas desde el disco usando imageNamed :, y que en casos de poca memory este caching no se borra completamente (parece que se corrigió con la versión 2.2, pero no puedo confirmarlo).

Dice que debería evitarse en las versiones 2.0 y 2.1 del SDK. Ha funcionado correctamente durante mucho time.

Echa un vistazo a esta pregunta