¿Por qué no consigo problemas de falta de memoria hasta que las imágenes son dibujar en la pantalla?

StackOverflow https://stackoverflow.com/questions/2917772

Pregunta

Soy capaz de cargar más de 200 objetos UIImage en un NSMutableDictionary sin ningún problema advertencia memorry.

Cuando les empezar a mostrar en la pantalla (después de mostrar imágenes 10-20) consigo las advertencias de poca memoria y un accidente eventual.

Sólo alrededor de 8 imágenes se visualizan en tiempo de nadie.

Qué se necesita memoria adicional para dibujar una realidad UIImage en la pantalla?

No hay pérdidas de memoria se están presentando y que he revisado código en busca de fugas muchas veces.

¿Fue útil?

Solución

El documentación que tener un UIImage no implica necesariamente que la imagen se almacena en la memoria, ya que podría ser purgado desde la caché de imágenes. Pero sí dice que si se intenta sacarla, se echó hacia atrás en la memoria. Tal vez comienza la purga de su caché de imágenes antes de que le advierte acerca de la condición de memoria baja. Eso explica todo lo que se está viendo.

Otros consejos

Su probable que en un inicio se crea un enlace a la imagen, los únicos datos que realmente se leen en este momento son las dimensiones y tipo de imagen (en pocas palabras), no suele ser necesario que el resto de los datos hasta que se solicite por lo general de un fondo procesar es decir, en la pantalla. Cuando se visualizan los datos de imagen real se descarga desde la ruta de archivo y decodifica de acuerdo con su tipo de imagen, que se almacena en caché y luego por lo que no tiene que ser descargada de nuevo, el almacenamiento en caché necesita una gran cantidad de memoria, más si el uso de doble / triple amortiguando hay memoria adicional requerida para el dibujo fuera de la pantalla. Trate de disponer de todos los datos de la imagen antes de cargar nuevas imágenes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top