私はARC
を使ってiPhoneプロジェクトを行っています。アプリケーションは、UINavigationController
を使用したナビゲーションベースのアプリケーションです。ARCを使用するときにオブジェクトをnilに設定すると、
典型的な使用例は、「メイン」UIViewController
から「セカンダリ」UIViewController
まで、複数回、おそらく100回までです。セカンダリコントローラには静的でローカルなPNG画像がたくさんあり、その一部は繰り返し表示されます。
私はアプリケーションをプロファイリングしているので、「メイン」コントローラーから「セカンダリー」コントローラーに移動すると約0.8 MBが割り当てられますが、戻るボタンを押すとメモリーが解放されません。したがって、私がセカンダリコントローラに再び行くと、他の0.8 MBが割り当てられます。
デバッグすると、viewDidUnload:
の副メソッドUIViewController
は決して呼び出されませんが、私はそれも読んでいますメソッドでは、コントローラが保持する参照をゼロに設定するはずです。 viewDidDisappear:
で行うことは、バックボタンを押したとき、つまりコントローラをスタックからポップするときにのみ発生するようにしたいので役に立ちません(viewDidDisappear:
メソッドはスタック上の別のコントローラをプッシュするときに呼び出されます)。
質問には次のようなものがあります。私はそれをどこで行う必要がありますか?そのメソッドを強制的に呼び出すことはできますか?その振る舞いはOKです(プロファイリング、 "メイン" - > "セカンダリ" - > "メイン" - > "セカンダリ" - > ...)?
ありがとうございました
ARCは、オブジェクトを自動的に解放するために基本的に使用されます。オブジェクトを手動で解放できるように、ARCをオフにして新しいプロジェクトを作成できます。 –
implement - (void)didReceiveMemoryWarning。これは、あなたのアプリがあまりにも多くのメモリを使用するときに呼び出されるメソッドです。 – MJB
バックボタンの動作をどのように実装していますか?あなたはこれのコードを投稿できますか? – Jim