インスタンス変数を適切にリリースする方法に疑問があります。deallocメソッドでリリースを実行できることはわかっています。viewdidunloadのように指定さself.instancevariouble=nil
れている場合は、オブジェクトも解放されます。私の質問は、unloadメソッドでオブジェクトをnilとして指定し、deallocメソッドでもそれを解放した場合に問題が発生するかどうかです。また、xibにIBoutletとして追加されたテーブルビューをリリースするにはどうすればよいですか?誰かが私を正しい方向に向けることができますか?
質問する
57 次
3 に答える
2
nilオブジェクトを呼び出すことrelease
に問題はありませんが、より良い戦略として、ARCに移行すると、これらの懸念のほとんどは解消されます。(iOS 6はビューをアンロードしないことにも注意してください。)
于 2012-11-08T13:44:53.527 に答える
0
self.instanceVariable = nil
メソッドで使用する場合viewDidUnload
(ちなみに、iOS 6では呼び出されなくなります)、値はもちろんnil
です。したがって、それをdealloc
メソッドで解放すると、基本的に呼び出し[nil release];
ても何も起こりません。
于 2012-11-08T13:45:20.293 に答える
0
nilオブジェクトを解放しようとすると、「機能」します。アプリがクラッシュすることなくnilオブジェクトにメッセージを送信できます;)これを行うことができます:
UILabel *lbl = nil;
[lbl release];
何もしません。
そして、「xibにIBoutletとして追加されたテーブルビューをリリースするにはどうすればよいですか。誰かが私を正しい方向に向けることができますか?」xibファイルのUITableViewをコードに「接続」し、次のことを行う必要があります。
[myTableView release];
于 2012-11-08T13:44:38.183 に答える