1

一部の Objective-C でアナライザーを使用する | Cocoa / Core Foundation のコードで、理解できないために修正できないエラーがいくつかありました。

エラー #1 : Objective-C クラス ヘッダーで、このプロパティを宣言します。

@property(readwrite) CFMutableSetRef gClients;

本文では、次のエラーが発生します。

ここに画像の説明を入力

質問:なぜリークなのですか? 私はそれを財産に保管し、後で処分します。ARCはCF「オブジェクト」の扱い方を知っていると思っていました。

エラー #2: 後で、オブジェクトを解放するときに次のエラーが発生しました。

ここに画像の説明を入力

質問:実際に機能する (ClientInitialize と destroyAllClients の呼び出しの間に self.gClients が存在する) コードを作成するために、これら 2 つの Analyzer 警告をどのように考慮に入れることができますか?

4

1 に答える 1

2

ARC は、手動の介入なしでは CF オブジェクトを管理しません。最初にやらなければならない仕事があります。

http://www.idryman.org/blog/2012/11/22/arc-best-practices-and-pitfalls/の「ARC and toll-free bridge」を参照してください。には特別なキャスティング トリックがあり(__bridge_transfer)ます。

于 2013-05-13T22:20:20.610 に答える