2009-04-27 12 views

答えて

3

をクリーンアップしようとすることを可能にすべきリリース(または[セルフリリース])を実行するためにapplicationWillTerminateコールを使用しました

+0

ありがとう。そのような観点からも、終了すると、iPhone OSはメモリを使用していたものすべてを自由に使えるようになりました。他の重要なものを-deallocの中に入れるのは悪い考えです。 – Thanks

+4

それは正しいです、deallocの中に何か重要なものを置くことは良い考えではありません。 application delegateからのapplicationWillTerminateは、重要なクリーンアップや状態コードの保存に適した場所です。 – mmc

3

はい、それはありません。特定の状況下で、アプリケーションが終了すると、deallocは呼び出されません。たとえば、applicationWillTerminate内のものが長すぎるか、キャッチされない例外をスローした場合、アプリケーションはdeallocを呼び出さずに終了します。

とは限りません。は、OSがメモリクリーンアップをとにかく実行するため、終了時にdeallocを呼び出します。最も簡単で簡単な解決策は、メインビューコントローラのdeallocにブレークポイントを設定し、アプリケーション終了時に呼び出されるかどうかを確認することです。

私はこれを一度試したときに呼び出されなかったことを覚えていると思いますが、私は確信が持てません。あなた自身で試してみるべきです。

+0

あなたは-deallocを自分で呼び出しましたか? – Thanks

+0

Swanzus:決して手動でdeallocを呼び出すべきではありません! – rpetrich

+0

ええ、申し訳ありませんが、私のオリジナルでひどく言われて、自己リリース*は、deallocを開始する必要があります、私は答えを修正します – curtisk