0

いくつかのViewControllerを切り替えるナビゲーションベースのアプリがあります。「goHome」ボタンを押すと、メソッドpopViewControllerAnimated:が呼び出され、メイン画面に戻ります。ただし、問題があります。deallocメソッドが呼び出されず、前のビューのすべての要素が解放されません。すべてのアニメーション/UI要素はメモリにぶら下がっています。私は何をすべきか?

4

2 に答える 2

1

まず、自動参照カウントに切り替えることをお勧めします。これにより、作業が楽になります。次に、コントローラーまたは他のオブジェクトへの参照が保持されていないことを確認します。

NSFetchedResultsController面白い話ですが、デリゲートをnilやその他のメモリエラーに設定するのを忘れて、フェッチされた結果コントローラがデリゲートを呼び出そうとしたときに醜い例外が発生しましたが、すでになくなっていました。

于 2012-04-05T15:23:28.717 に答える
1

UIViewController で、dealloc が正しい署名を持ち、最後にスーパー ビューを呼び出していることを確認します。

 - (void) dealloc {
     //Release your stuff
     [super dealloc];
 }

また、UIViewControllers を扱うときは、viewDidUnload のメモリも扱う必要があることを覚えておいてください (実際には問題に対処していませんが、そこに入れると思います)。

于 2012-04-05T13:13:11.410 に答える