1

Xcode の最新バージョンをダウンロードして以来、初めて新しい Xcode プロジェクトを開始しました。.h ファイルでプロパティを宣言すると、.m ファイルで自動的に合成されず、ViewDidUnload スタブで nil に設定されないことにすぐに気付きました。さらに... ViewDidUnload IBAction スタブはありません。ここでスタック オーバーフローについて少し調べたところ、これは新しいことであり、正常なことであることがわかりました。

私はまた、新しい didReceiveMemoryWarning に気付き、誰かがそれについて次のように書いていることに気付きました: ビューや他の UI オブジェクトに関連しないメモリを解放したい場合は、didReceiveMemoryWarning を使用してください。

私の質問はこれです...以前は、Xcode は viewDidUnload でプロパティを自動的に nil に設定していました。didReceiveMemoryWarning でそれらを nil に設定しません。didReceiveMemoryWarning スタブでこれらを手動で nil に設定するか、Xcode が .m ファイルを作成するときにそのままスタブを空のままにする必要がありますか? 使用されなくなったときにプロパティを nil に設定する必要がある場所はありますか、それとも Xcode が自動的にそれを行うようになりましたか?

ありがとう!

4

1 に答える 1

1

ほとんどの UI 要素で使用されるメモリは、ごくわずかです。これが、iOS が廃止された (そして現在は呼び出されなくなった) 理由の 1 つですviewDidUnload。問題を正当化するのに十分ではありません (バグの可能性を含む)。

didReceiveMemoryWarning重要なメモリ使用量を削減する必要がある場所です。特に、再構築できるキャッシュされた情報をダンプするのに適した場所です。私の意見では、少なくとも数十 kB の範囲のものを見ているは​​ずです。一般に、数百バイトのダンプは、それを管理するために必要なコード (それ自体がメモリとテストとメンテナンスを必要とするコード) の価値がありません。didReceiveMemoryWarning多くのプログラムでは、キャッシュをあまり必要としない場合があります。(そして、とにかくNSCacheハンドコーディングよりも優れたのような他のツールがあります。)didReceiveMemoryWarning

于 2012-10-09T19:04:19.097 に答える