3

ベスト プラクティスはさておき、UIApplicationDelegate クラスが所有するオブジェクトを作成し、アプリケーションの実行中ずっとそのままにしておく場合、UIApplicationDelegate の dealloc メソッドに [object release] ステートメントを追加するメリットはありますか?

呼び出されるのは、ユーザーがアプリケーションをシャットダウンするときだけであり、そのアプリケーションで使用されていたメモリ領域全体が解放されると想定しています。

ベスト プラクティスの観点からは、確かに、メモリ管理コードをアプリケーション全体に一貫して追加することは理にかなっていますが、実行の観点からは、それが実際に問題になるかどうかに興味があります。

注: iPhone 開発者の観点からこれを求めています。それが Mac OSX の観点と異なるかどうかはわかりません。

4

1 に答える 1

4

for the -deallocapp デリゲートはほぼ確実に呼び出されることはありません (もしそうなら、ほぼ確実にバグがあります) ので、その意味では問題になりません。とはいえ、Cocoa 開発ではベスト プラクティスが脇に置かれることはありません。メモリ管理の慎重な一貫性は、最も見つけにくいバグを回避するための唯一の最も効果的な方法です。したがって、少し余分なコードを追加するだけでも問題ありません。しかし、この場合 (そしてこのようなケースは他にもたくさんあります)、実際には問題になりません。

于 2009-08-28T14:08:26.290 に答える