2013-12-11 23 views
7

Sto cercando di trovare la fonte di una perdita di memoria come dettagliato qui:Dati raster CG - CGProviderCreateWithCopyOfData - Impossibile rilasciare?

Unable to Release Quartz 2D and Core Text created Images

Quando uso gli strumenti posso vedere che c'è qualcosa chiamato CG dati raster in costante crescita in termini di dimensioni che non è mai uscito.

Qualcuno sa cosa potrebbe causare questo e come rimediare? Sembra che questa potrebbe essere una sorta di memorizzazione nella cache delle immagini, ma è possibile svuotarla dal codice?

+0

La memoria si libera se si chiude questa schermata? Se lo è, dovrai aggiungere @autoreleasepool al codice che utilizza le immagini (potrebbe trattarsi di un ciclo). –

+0

Puoi allegare il tuo codice? –

risposta

0

Ho riscontrato lo stesso problema con la memoria CG Raster Data aumentando semplicemente premendo e scoccando ripetutamente un controller di visualizzazione. Ho passato un po 'di tempo a pensare che fosse un problema con qualche codice di disegno. Alla fine l'ho rintracciato a un delegato che non si riferiva debolmente al controller della vista che veniva spinto e fatto scoppiare, quindi quando ho fatto scoppiare il controller della vista, non era stato rilasciato. Il CG dati raster capitato di essere la parte più grande di orma che di controller della vista, così ho erroneamente attribuito il problema che inizialmente, quando era davvero il controller della vista in sé che non era stato rilasciato (quindi, non rilasciando la sua vista, alcune delle che aveva CG Raster Data).

In breve: se stai vedendo le perdite di memoria con CG dati raster, guarda controller di vista che potrebbero avere opinioni con loro, e assicurarsi che essi vengono rilasciati.