0

我遇到了过度释放 CGContextRef 的问题,但我不知道在哪里。文档说应该释放使用 CGBitmapContextCreate 创建的 CGContextRef 但是当我收到错误“ * -[Not A Type class]: message sent to deallocated instance 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 行,但仍然出现相同的错误。

4

1 回答 1

0

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

于 2012-08-31T08:31:19.303 回答