ich den folgenden Code in Swift haben:Wie kann ich einen CGDataProvider in Swift unter iOS freigeben?
func cropToAlpha(image:CGImage) -> CGImage? {
let pixelDataProvider:CGDataProvider? = CGImageGetDataProvider(image)
if pixelDataProvider != nil {
let pixelData:CFData? = CGDataProviderCopyData(pixelDataProvider!)
Die documentation for CGImageGetDataProvider und die documentation for CGDataProviderCopyData beide sagen
Sie sind verantwortlich für die Freigabe dieses Objekt
Der Swift Programmführer spricht über deinitialization aber das ist nicht dasselbe wie ein Objekt freizugeben.
Einige Objective-C Antworten (zB How do I release a CGImageRef in iOS) vorschlagen CFRelease
aufrufen, aber wenn ich so etwas wie
CFRelease(pixelDataProvider)
versuchen dann erhalte ich die Compiler-Fehler
'CFRelease' ist nicht verfügbar: Objekte Core Foundation werden automatisch gemanaged
Wie befolge ich die Anfrage in der Dokumentation für CGIm ageGetDataProvider und CGDataProviderCopyData durch Freigabe der resultierenden Objekte in Swift?
(N. B. Sie suchen nach einem ‚Swift Release‘ ist schwierig, da die Suchergebnisse mit Seiten über Freisetzungen von Swift überschwemmt sind)