0
我将一些OSX代码移植到iOS并需要访问CIImage的字节。 OSX版本使用NSBitmapImageRep来完成此操作,但在iOS上我需要跳过一些循环。访问CIImage字节,崩溃应用程序
这里是我试图运行
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [context createCGImage:image fromRect:image.extent];
CGDataProviderRef provider = CGImageGetDataProvider(cgImage);
CFDataRef data = CGDataProviderCopyData(provider);
CGRect extent = [image extent];
//png.Load((UInt8*)CFDataGetBytePtr(data), extent.size.width, extent.size.height, true);
CFRelease(data);
//CGDataProviderRelease(provider);
它将按预期的代码,但经过一段时间的应用程序崩溃。我不知道为什么。我正在猜测内存泄漏/越界内存。据我可以告诉一切正在被释放正确...如果我评论这些线,没有崩溃。如果我几乎立即评论CGDataProviderRelease在应用程序崩溃。
我觉得哑巴。这是一个问题。 CFRelease(cgImage)使应用程序更稳定,但我仍然崩溃(但现在需要两倍的时间才能崩溃)。我不知道是否还有其他东西可能会丢失...... – 2012-07-26 19:32:39
使用仪器,泄漏和对象Alloc运行项目。您可能会发现一种泄漏类型的信息。它并不是很难使用。 – 2012-07-26 19:36:07
谢谢戴夫!现在我在仪器仪表方面深陷困境。我想我可以从这里拿走它。 – 2012-07-26 19:47:16