0

ある種の静的クラスがあるとしましょう。つまり、すべての静的関数を備えた静的ライブラリの.hクラスです。一部の関数は、Webサービスへの非同期リクエストを実行し、initWithRequest:requestでNSMutableURLRequestを使用します。サーバーからのデータを監視したいので、すべてのNSURLConnectionDelegate接続プロトコルを実装するデリゲートを作成します。つまり、受け入れ、追加、終了し、リクエストに渡します。

問題は、.hクラスにすべての静的メソッドがあり、メンバーとしてNSURLConnectionDelegateデリゲートがないため(クラスは静的であるため)、接続デリゲートをどこで解放するのですか?そして主な質問は、connectionDidFinishLoadingデリゲートメソッドでNSURLConnectionDelegateのセルフリリースを行うのが一般的な方法ですか?

ありがとう

4

2 に答える 2

2

NSURLConnectionに割り当てた直後に、デリゲートを解放できます。ドキュメントから:

ダウンロード中、接続はデリゲートへの強力な参照を維持します。接続の読み込みが完了するか、失敗するか、キャンセルされると、その強力な参照が解放されます。

これは、オブジェクトがデリゲートへの弱参照のみを保持するという一般的な規則の例外です。

于 2012-08-05T11:10:28.633 に答える
0

オブジェクトがデリゲートを保持することは通常ではないため、デリゲートを解放することは通常の方法ではありません。デリゲートは通常weak__unsafe_unretained)属性で参照されるため、オブジェクトが解放されると参照は安全に壊れます。

于 2012-08-05T08:57:37.883 に答える