6

私はARCを使ってiPhoneプロジェクトを行っています。アプリケーションは、UINavigationControllerを使用したナビゲーションベースのアプリケーションです。ARCを使用するときにオブジェクトをnilに設定すると、

典型的な使用例は、「メイン」UIViewControllerから「セカンダリ」UIViewControllerまで、複数回、おそらく100回までです。セカンダリコントローラには静的でローカルなPNG画像がたくさんあり、その一部は繰り返し表示されます。

私はアプリケーションをプロファイリングしているので、「メイン」コントローラーから「セカンダリー」コントローラーに移動すると約0.8 MBが割り当てられますが、戻るボタンを押すとメモリーが解放されません。したがって、私がセカンダリコントローラに再び行くと、他の0.8 MBが割り当てられます。

デバッグすると、viewDidUnload:の副メソッドUIViewControllerは決して呼び出されませんが、私はそれも読んでいますメソッドでは、コントローラが保持する参照をゼロに設定するはずです。 viewDidDisappear:で行うことは、バックボタンを押したとき、つまりコントローラをスタックからポップするときにのみ発生するようにしたいので役に立ちません(viewDidDisappear:メソッドはスタック上の別のコントローラをプッシュするときに呼び出されます)。

質問には次のようなものがあります。私はそれをどこで行う必要がありますか?そのメソッドを強制的に呼び出すことはできますか?その振る舞いはOKです(プロファイリング、 "メイン" - > "セカンダリ" - > "メイン" - > "セカンダリ" - > ...)?

ありがとうございました

+0

ARCは、オブジェクトを自動的に解放するために基本的に使用されます。オブジェクトを手動で解放できるように、ARCをオフにして新しいプロジェクトを作成できます。 –

+0

implement - (void)didReceiveMemoryWarning。これは、あなたのアプリがあまりにも多くのメモリを使用するときに呼び出されるメソッドです。 – MJB

+0

バックボタンの動作をどのように実装していますか?あなたはこれのコードを投稿できますか? – Jim

答えて

1

ARCはコードを減らして内部的にメモリを管理するために使用されています。 詳細については、下のチュートリアルを参照して、概念をより簡単に理解できるようにしてください。私は、これはあなたを助けるかもしれない願ってい

Understanding Automatic Reference Counting in Objective-C

+0

実際、ARCについての私の知り合いを増やすようになりました。しかし、それは私の問題を解決するものではありません。どういうわけか、iOSに、セカンダリコントローラのインスタンスが戻るボタンを押すたびにナビゲーションスタックからポップするように指示する必要があります。 – sonxurxo

関連する問題