CGBitmapContextCreate在iPhone 6+中提供EXC_BAD_ACCESS

时间:2014-11-19 07:19:49

标签: ios iphone cgcontext cgbitmapcontextcreate

当调用CGBitmapContextCreate方法时,应用程序崩溃,提供EXC_BAD_ACCESS。

仅在iPhone 6+中运行(在设备上运行时)。

CGContextRef context = CGBitmapContextCreate(baseAddress, width, height, 8, bytesPerRow, colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst);

是的,我已经尝试将NSZombieEnabled设置为YES作为环境变量..但是在EXC_BAD_ACCESS上调试器控制台上仍然没有显示任何内容。

1 个答案:

答案 0 :(得分:0)

我遇到了这个确切功能的崩溃,因为我正在分配一个不考虑其对齐的存储缓冲区,例如:

baseAddress = malloc (width * height * 4);

现在我用...

baseAddress = new u32 [width * height];

...强制进行4字节对齐并修复了EXC_BAD_ACCESS。注意,我也使用kCGBitmapByteOrder32Big,而不是像你一样。可能或可能不相关。

然而,我在iPhone 6和iPad Mini上得到了奇怪的像素数据。

(见Getting pixel data on iOS 8 / iPhone 6)。