0

私は iOS プログラミングは初めてで、最近、メモリ管理に関する貴重な教訓を学びました。問題は解決しましたが、それが正しい方法であったかどうかはわかりません。

UserFetcher *userFetcher = [[UserFetcher alloc] init];
[userFetcher setDelegate: self];
[userFetcher fetchData];

このコードでは、userFetcher は RestKit を使用して外部サーバーへの REST 呼び出しを行います。つまり、UserFetcher は RestKit をラップします。Restkit が userFetcher に値を返すと、userFetcher が破棄されているため、エラーがスローされます。これは、UserFetcher が作成された親メソッド (上記のコード) の実行が終了し、ARC がその割り当てを解除したために発生します。

この問題は、プライベート プロパティ UserFetcher 型 (強力、非アトミック) を作成することで解決しました。それがそれを解決する最良の方法であるかどうか疑問に思っていましたか?または、私のデザインを改善できますか。

4

1 に答える 1

0

あなたはそれを適切に解決しました。このオブジェクトへの強い参照が必要です。確実に完了したら、「userFetcher = nil;」解放します。

于 2012-07-15T13:04:59.453 に答える