viewDidUnload
とdealloc
の両方がであるかどうかを知りたいのですが、UIViewControllerのティアダウンプロセスでは常にと呼ばれています。 viewDidUnload
が最初に呼び出されていないと、dealloc
がビューコントローラで呼び出せますか?UIViewControllerを分解するときに、常にviewDidUnloadとdeallocが呼び出されますか?
どちらの場合でも、どちらのメソッドでもプロパティと保持された参照を安全に解放しても問題はありませんが、ティアダウンプロセス。
2012アップデート:それがあるかのようにiOSの6 viewDidUnload
は廃止されたとdidReceiveMemoryWarning
でを必要に応じて手動ビューのティアダウンを交換する必要があることに注意することは便利です。
新しいUIViewの/ UIViewContollerに良い記事と新しい行動とそれがjoe conway blog
答えに 'viewDidLoad'と言うとき、あなたは' viewDidUnload'を意味すると思います。 'viewDidLoad'はメモリが足りないときに呼び出されるのではなく、画面が(viewWillAppear'の前に)表示されるときに呼び出されます。 'viewDidUnload'はメモリ不足の警告があるときに呼び出されます。 –
これは正解であったはずです。これは今日私を困らせる。 – asandroq
viewDidUnloadの中でself.whatever = nilを実行し、deallocの中で[_whatever release]を呼び出すのは大丈夫でしょう。そうすることで、viewDidUnloadが最初に呼び出された場合、アイテムはdeallocでオーバーリレースされません。これは、nilされていないためで、リリースメッセージはnilに送信されるとすぐに消えます。誰でもこれを確認できますか? – jpswain