我遇到过CGContextRef过度发布的问题,但我无法弄清楚在哪里。文档说用CGBitmapContextCreate创建的CGContextRef应该被释放但是当我得到错误“ * - [Not A Type class]:消息发送到解除分配的实例0x613d750”
这是我的代码:
CGContextRef ctx = CGBitmapContextCreate(NULL, self.size.width, self.size.height,
CGImageGetBitsPerComponent(self.CGImage), 0,
CGImageGetColorSpace(self.CGImage),
CGImageGetBitmapInfo(self.CGImage));
CGContextRelease(ctx); // PROBLEM HERE
正如您所看到的,除了旋转图像和创建UIImage之外,这里没有太多发生。任何想法为什么会发生这种情况?
编辑:
我已将示例代码缩减为2行,但仍然会出现同样的错误。
答案 0 :(得分:0)
检查它是否与CGImageRelease的发布一起发布。我不记得曾经遇到过的确切问题,但UIImage发布上下文是一个问题。尝试注释掉CGImageRelease(cgimg);并查看CGContextRelease(ctx);之后工作。