アップルは、アプリケーションが終了したときに、Cocoa -deallocは必要に応じて呼び出されないと言っています。これはiPhoneにも当てはまりますか?私は、その後のdeallocがうまくアプリケーション終了時に-deallocメソッドが呼び出されますか?
3
A
答えて
3
をクリーンアップしようとすることを可能にすべきリリース(または[セルフリリース])を実行するためにapplicationWillTerminateコールを使用しました
3
はい、それはありません。特定の状況下で、アプリケーションが終了すると、deallocは呼び出されません。たとえば、applicationWillTerminate内のものが長すぎるか、キャッチされない例外をスローした場合、アプリケーションはdeallocを呼び出さずに終了します。
とは限りません。は、OSがメモリクリーンアップをとにかく実行するため、終了時にdeallocを呼び出します。最も簡単で簡単な解決策は、メインビューコントローラのdeallocにブレークポイントを設定し、アプリケーション終了時に呼び出されるかどうかを確認することです。
私はこれを一度試したときに呼び出されなかったことを覚えていると思いますが、私は確信が持てません。あなた自身で試してみるべきです。
ありがとう。そのような観点からも、終了すると、iPhone OSはメモリを使用していたものすべてを自由に使えるようになりました。他の重要なものを-deallocの中に入れるのは悪い考えです。 – Thanks
それは正しいです、deallocの中に何か重要なものを置くことは良い考えではありません。 application delegateからのapplicationWillTerminateは、重要なクリーンアップや状態コードの保存に適した場所です。 – mmc