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 に答える