ナビゲーションベースのiPhoneアプリケーションを開発しています。アプリケーションが終了するたびに、ナビゲーションコントローラーとウィンドウの保持数は3になります。この問題を解決する方法を誰かに説明してもらえますか?その結果、deallocメソッドは呼び出されません。
3 に答える
2
問題はありません。
- 決定的なリークが見られない限り、保持カウントを気にしないようにする必要があります(通常はInstrumentsで)
- アプリケーションの終了時にウィンドウ(およびおそらくnavコントローラー)のようなオブジェクトが割り当て解除されることを心配する必要はありません。その時点で、アプリのメモリはすべて失われます。
于 2009-12-28T22:54:18.637 に答える
0
ただし、UIViewControllerとAppdelegateのどちらのdeallocメソッドも呼び出されていません。ビューコントローラのretaincount値は1です。問題は、それらが何度も使用されるため、rootviewcontrollerに保持することです。また、それらを解放して再度割り当てるのは不十分です。では、これらの他のUIViewControllerをいつリリースしますか?rootviewcontrollerのdeallocメソッドが呼び出されていません。
于 2009-12-28T23:04:44.123 に答える
0
呼び出されるdeallocメソッドに依存しないことで、この問題を克服します。アプリケーション分解コードは、適切なアプリケーションメソッドに含める必要があります。オブジェクトdealloc
は、そのオブジェクトのメモリを解放し、メモリ管理コントラクトでその役割を果たすために必要なことを実行する必要があります。アプリが終了すると、すべてのメモリが解放されるため、deallocを呼び出す必要はありません。
于 2009-12-28T23:11:24.050 に答える