1

Arc を使用して、オブジェクト (Shape) のプロパティとして CgImageRef を持っています。最終的には、CgImageRef を 1 つ以上のレイヤーのコンテンツに割り当てますが、最初は形状のままにします。私がこれを行うと、うまくいきます:

CgImageRef cgImageRef = CGImageCreateWithImageInRect(....);
someLayer.contents = (__bridge id)cgImageRef;
CFRelease(cgImageRef);

しかし、私が言うなら

myShape.cgImageRef = CGImageCreateWithImageInRect(...);

アナライザーは潜在的なメモリ リークを報告します。
ShapeObject 内で、cgImageRef で CFRelease を使用する dealloc メソッドを追加しようとしましたが、アナライザーは、所有していないオブジェクトを解放していると言います。ポインターを別のオブジェクトに割り当てていないため、ブリッジングは適用されないようです。ここで私は正確に何をすべきですか?

4

0 に答える 0