调用CGBitmapContextCreate方法时,应用程序崩溃,给出EXC_BAD_ACCESS。
这仅在iPhone 6+中发生(在设备上运行时)。
CGContextRef context = CGBitmapContextCreate(baseAddress, width, height, 8, bytesPerRow, colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst);
是的,我已经尝试将 NSZombieEnabled 设置为 YES 作为环境变量......但EXC_BAD_ACCESS时调试器控制台上仍然没有显示任何内容。
确切的函数上遇到了崩溃,因为我正在分配一个存储缓冲区而不考虑它的对齐方式,例如:
baseAddress = malloc (width * height * 4);
现在我用...
baseAddress = new u32 [width * height];
。强制 4 字节对齐,它修复了EXC_BAD_ACCESS。注意,我也使用kCGBitmapByteOrder32Big而不是像你一样小。可能相关,也可能不相关。
但是,我在iPhone 6和iPad Mini上获得了奇怪的像素数据。
(请参阅在iOS 8/iPhone 6上获取像素数据)。