Arc を使用して、オブジェクト (Shape) のプロパティとして CgImageRef を持っています。最終的には、CgImageRef を 1 つ以上のレイヤーのコンテンツに割り当てますが、最初は形状のままにします。私がこれを行うと、うまくいきます:
CgImageRef cgImageRef = CGImageCreateWithImageInRect(....);
someLayer.contents = (__bridge id)cgImageRef;
CFRelease(cgImageRef);
しかし、私が言うなら
myShape.cgImageRef = CGImageCreateWithImageInRect(...);
アナライザーは潜在的なメモリ リークを報告します。
ShapeObject 内で、cgImageRef で CFRelease を使用する dealloc メソッドを追加しようとしましたが、アナライザーは、所有していないオブジェクトを解放していると言います。ポインターを別のオブジェクトに割り当てていないため、ブリッジングは適用されないようです。ここで私は正確に何をすべきですか?