2012-12-06 13 views
7

Sto riscontrando un problema con iOS durante l'utilizzo di CGImageDestinationFinalize. Chiamerò CGImageDestinationFinalize su un CGImageDestinationRef e vado a prendere il seguente avvisoCGContextClear Warning

Error: The function `CGContextClear' is obsolete and will be removed in an upcoming update. Unfortunately, this application, or a library it uses, is using this obsolete function, and is thereby contributing to an overall degradation of system performance.

Guardando Instruments, il mio utilizzo della memoria spara alto (a volte diventa così alta che si blocca) quando chiamo CGImageDestinationFinalize. Non sono sicuro se questo problema sia da biasimare o meno, ma l'ho isolato per essere un problema con CGImageDestinationFinalize

Qualche consiglio su cosa usare per evitare di chiamare CGContextClear? O come ridurre l'utilizzo della memoria con CGImageDestinationFinalize?

+1

Sto avendo lo stesso problema. Ho appena archiviato un bug del radar Apple sull'argomento e suggerirei di fare la stessa cosa. –

+0

@DuncanC l'ha mai risolto? Sto ancora ricevendo lo stesso errore – Jonathan

+0

Ho avuto lo stesso problema con CGImageDestinationFinalize in iOS 6, ma nessun avviso di questo tipo in iOS 7, forse perché ciò che il messaggio aveva promesso che verrà rimosso da una versione "futura". Quindi forse l'unica cosa che possiamo fare ora è vivere con questo messaggio di avviso fino a quando tutti si trasferiranno su iOS 7? – CodePlumber

risposta

0

Direi che è correlato in modo definitivo a CGContextClear. Mantiene qualsiasi cosa attinga alla memoria. Mentre il tuo contesto non viene cancellato o rilasciato manterrà gli elementi definiti all'interno di quel contesto in memoria. Con quale versione di iOS stai lavorando?
Sono abbastanza sicuro che CGContextClear non funziona per iOS 6 e versioni successive.

Se si va alla documentazione che si può notare che CGContextClear non compare più https://developer.apple.com/library/ios/DOCUMENTATION/GraphicsImaging/Reference/CGContext/Reference/reference.html

Cercare CGContextClearRect che potrebbe aiutare a scopi