过度释放CGContextRef?

时间:2012-08-31 08:17:59

标签: cocoa-touch core-graphics

我遇到过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行,但仍然会出现同样的错误。

1 个答案:

答案 0 :(得分:0)

检查它是否与CGImageRelease的发布一起发布。我不记得曾经遇到过的确切问题,但UIImage发布上下文是一个问题。尝试注释掉CGImageRelease(cgimg);并查看CGContextRelease(ctx);之后工作。