Я пытаюсь выполнить некоторые манипуляции с CoreGraphics / CoreImage внутри NSOperation, используя MacRuby. У меня есть несколько вызовов API, которые читают исходный файл в CG и настраивают CGImageDestination.
Если я добавлю следующий код в NSOperation.init, все будет отлично работать:
@dest = CGImageDestinationCreateWithURL(@photo.output_url, "public.jpeg" , 1, nil);
@context = CIContext.alloc.init
@cgOriginalImgSrc = CGImageSourceCreateWithURL(@photo.url, nil)
@cgOriginal = CGImageSourceCreateImageAtIndex(@cgOriginalImgSrc, 0, nil)
Но если я помещаю тот же код в основную функцию для NSOperation, я получаю единичные ошибки EXC_BAD_ACCESS. И только при передаче NSOperation к NSOperationQueue; если я сам вызываю main, все работает просто отлично.
В конце основной я бегу:
CFRelease(@dest)
CFRelease(@cgOriginalImgSrc)
CGImageRelease(@cgOriginal)
Даже странно, что он работает в init, даже если init не вызывается из основного потока (так что, я думаю, это не проблема основного потока / фонового потока)
Есть мысли?