は、あなたがそうのようCGLayer作成放し、次にCGContextRefリリースに不可能であると表示されるコンテキスト...を取得できませんか?CGContextRef(CGLayerからであるコンテキスト)
CGLayerRef自体(明らかに)を解放すると問題なく動作します。
CGLayerをリリースする直前にCGContextRefをリリースできると思いますが、それはありませんか?また、CGLayerを解放した直後にCGContextRefを解放することもできません。
CGContextRefをリリースすると、アプリケーションがクラッシュします。
CGLayerRef aether = CGLayerCreateWithContext(
UIGraphicsGetCurrentContext(), CGSizeMake(1024,768), NULL);
CGContextRef weird = CGLayerGetContext(aether);
// paths, strokes, filling etc
// paths, strokes, filling etc
// try releasing weird here
CGLayerRelease(aether);
// or, try releasing weird here
ここで何が起こっているのですか? CGContextReleaseはCFReleaseとまったく同じであり、いくつかのゼロ点検と同じです。
実際にCGContextRefを手動でリリースしないでください。誰か知っていますか?乾杯。以下ジョエルの壮大な答えについて
CGContextRelease(weird); // impossible, not necessary, doesn't work???
:
は正しいと適切なCGLayerRefを解放していますか?ジョエルは指摘している:
「はい、あなたからそれを取得している機能は、その署名に 『作成』しているので参照してください:ドキュメント/ CoreFoundationのを/」
はい、それを取得している関数の署名に「作成」が含まれています。 http://developer.apple.com/library/mac/#documentation/CoreFoundation/Conceptual/CFMemoryMgmt/Concepts/Ownership.html#//apple_ref/doc/writerid/cfCreateRuleを参照してください。 –