背景:現在 4 つのタブを含むタブ バー コントローラーがあります。タブのうち 3 つは、データの表示、編集、および作成のためのテーブル ビューの階層を表示するナビゲーション コントローラーです。データは通常、ユーザーから取得され、グローバル変数に格納される NSString です (データには、階層内の複数のビューと複数のタブからアクセスする必要があります)。
問題アプリが起動するとすぐに大量のメモリを使用していることに気付きました(~11mb )。ただし、テーブル ビューをスクロールし、nav コントローラーを使用してさらに多くのテーブル ビューにアクセスし、一部のデータを編集すると、メモリ使用量がすぐに 20 MB 近くまで上昇します。最悪の部分は、詳細ビュー コントローラーから飛び出しても、メモリ使用量が減少しないことです。20〜21MB前後でホバリングし、そしてプロセスを繰り返すと、メモリ使用量がますます高くなるようです。Leaks でアプリをテストし、すべての問題を解決しました。非アクティブなビュー コントローラーは、現在表示されていなくても、まだメモリに残っていると思われます。ナビゲーション コントローラーの階層で不要なビュー コントローラーを解放したり、非アクティブなビュー コントローラーをタブ バーから解放したりする方法はありますか? didReceiveMemoryWarning:
私は Apple のドキュメントを読んでいますが、ビュー コントローラーとapplicationDidReceiveMemoryWarning:
アプリ デリゲートを同様に実装することを強くお勧めします。これらの方法をどこから始めればよいか本当にわかりません。どのコントローラーを解放できますか? また、それらを再作成するにはどうすればよいですか? その責任は私にあると思いますが、確認したいと思います。
メモリ使用量が少ないため、まだアプリを終了させていませんが、データ入力を何度も繰り返すと (多くのビュー コントローラーのプッシュとポップ)、クロールが遅くなることに注意してください。