Ich versuche, einige CoreGraphics/CoreImage-Manipulation innerhalb einer NSOperation mit MacRuby zu tun. Ich habe ein paar API-Aufrufe, die eine Quelldatei in CG lesen und ein CGImageDestination einrichten.EXC BAD ACCESS von CoreGraphics API in NSOperation
Wenn ich den folgenden Code in ein NSOperation.init setzen, alles funktioniert gut:
@dest = CGImageDestinationCreateWithURL(@photo.output_url, "public.jpeg" , 1, nil);
@context = CIContext.alloc.init
@cgOriginalImgSrc = CGImageSourceCreateWithURL(@photo.url, nil)
@cgOriginal = CGImageSourceCreateImageAtIndex(@cgOriginalImgSrc, 0, nil)
Aber wenn ich den gleichen Code in die Hauptfunktion für die NSOperation setzen, bekomme ich sporadisch EXC_BAD_ACCESS Fehler. Und nur wenn die NSOperation an eine NSOperationQueue übergeben wird; Wenn ich selbst main anrufe, funktioniert es gut.
Am Ende des Hauptes Ich betreiben:
CFRelease(@dest)
CFRelease(@cgOriginalImgSrc)
CGImageRelease(@cgOriginal)
Noch seltsamer ist, dass er in init funktioniert, auch wenn init nicht von dem Haupt-Thread aufgerufen wird (also nicht ein Haupt-Thread/Hintergrund-Thread Ausgabe, ich rate)
Irgendwelche Gedanken?