2012-12-06 10 views
7

Ich habe ein Problem mit iOS bei der Verwendung von CGImageDestinationFinalize. Ich rufe CGImageDestinationFinalize auf einem CGImageDestinationRef und ich werde die folgende WarnungCGContextClear Warnung

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.

Mit Blick auf Instrumente, meine Speichernutzung schießt (manchmal wird es so hoch, dass es abstürzt), wenn ich CGImageDestinationFinalize nennen. Ich bin mir nicht sicher, ob dieses Problem schuld ist oder nicht, aber ich habe es zu einem Problem mit CGImageDestinationFinalize

Haben Sie einen Ratschlag, was zu verwenden, um den Aufruf eines CGContextClear zu vermeiden? Oder wie kann die Speicherauslastung mit CGImageDestinationFinalize reduziert werden?

+1

zu Ihrem Zwecke helfen könnte ich das gleiche Problem habe. Ich habe gerade einen Apple-Radar-Bug zu dem Thema eingereicht und würde vorschlagen, dass Sie das Gleiche tun. –

+0

@DuncanC wurde das jemals behoben? Ich bekomme immer noch den gleichen Fehler – Jonathan

+0

Ich habe das gleiche Problem mit CGImageDestinationFinalize in iOS 6, aber keine solche Warnung in iOS 7, vielleicht liegt das daran, dass die Nachricht versprochen hatte, dass es aus einer "zukünftigen" Version entfernt wird. Vielleicht können wir jetzt nur noch mit dieser Warnmeldung leben, bis alle auf iOS 7 umziehen. – CodePlumber

Antwort

0

Ich würde sagen, dass es definitiv mit CGContextClear verwandt ist. Es hält, was auch immer du an Speicher machst. Während Ihr Kontext nicht gelöscht oder freigegeben wird, behält er die in diesem Kontext definierten Elemente im Speicher. Mit welcher iOS-Version arbeiten Sie?
Ich bin mir ziemlich sicher, CGContextClear funktioniert nicht für iOS 6 und höher.

Wenn Sie in der Dokumentation gehen, können Sie feststellen, dass CGContextClear erscheint nicht mehr https://developer.apple.com/library/ios/DOCUMENTATION/GraphicsImaging/Reference/CGContext/Reference/reference.html

Suchen Sie nach CGContextClearRect die