Perché non ottengo problemi di memoria a basso fino a quando le immagini sono disegnare sullo schermo?

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

Domanda

Sono in grado di caricare più di 200 UIImage oggetti in un NSMutableDictionary senza problemi di avvertimento memorry.

Quando li iniziare a visualizzare sullo schermo (dopo circa 10-20 mostrando immagini) ottengo gli avvertimenti bassi di memoria e un incidente eventuale.

Solo circa 8 immagini vengono visualizzate al momento nessuno.

Ci vuole memoria aggiuntiva per disegnare una realtà UIImage sullo schermo?

Non ci sono perdite di memoria vengono visualizzati e ho rivisto il codice di perdite molte volte.

È stato utile?

Soluzione

Il documentazione dice che avere un UIImage non implica necessariamente che l'immagine viene effettivamente memorizzato nella memoria, perché potrebbe essere spurgato dalla cache immagine. Ma non dire che se si tenta di disegnare, sarà tirato indietro nella memoria. Forse inizia l'eliminazione dalla cache immagine prima che ti mette in guardia circa la condizione di memoria insufficiente. Questo spiega tutto ciò che si sta vedendo.

Altri suggerimenti

La sua probabile che si crea inizialmente un link all'immagine, gli unici dati che viene effettivamente letto in questo momento sono le dimensioni e tipo di immagine (in breve), il resto dei dati di solito non è necessario fino a quando richiesto di solito da uno sfondo elaborare cioè visualizzata sullo schermo. Quando vengono visualizzati i dati immagine reale viene scaricato dal percorso file e decodificato in base al suo tipo di immagine, che viene poi memorizzata nella cache in modo che non ha bisogno di essere scaricati di nuovo, il caching prende un sacco di memoria più se la vostra utilizzando doppia / tripla buffer non c'è memoria aggiuntiva richiesta per il disegno schermo spento. Prova lo smaltimento di tutti i dati di immagine prima di caricare nuove immagini.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top