2

私は ARC を使用しており、参照を構造体に渡す必要があるオブジェクトがあります。

myStruct->myObject = (__bridge void *)self;

この構造体以外のすべての標準参照がスコープ外に渡される場合がありますが、オブジェクトの保持カウントが 0 にならないように構造体を維持する必要があります。

私はこれを行うことができますか?:

CFRetain(myStruct->myObject);

その後、構造体を破棄するときに呼び出すだけです

CFRelease(myStruct->myObject);

これらは void* ブリッジ参照で呼び出されており、実際の Objective-C クラスを存続させているかどうかはわかりません。

4

1 に答える 1

4

はい、うまくいきます。あなたも書くことができることに注意してください

myStruct->myObject = CFBridgingRetain(self);

Objective-C オブジェクトを a にキャストしてconst void *「所有権を取得」します。

于 2013-10-05T19:30:11.823 に答える