ARCはObjective-cの開発において大きな進歩を遂げていますが、ARCを使用する場合でも、メモリ管理には細心の注意を払う必要があります。
デバイスのメモリを実際に浪費しないように詳細を見る必要があるため、この機能を最大限に活用するには、ARCに関するWWDC2011のビデオを視聴することをお勧めします。
ARCを最大限に活用するための最も重要なポイントは、1つのコントローラーが別のコントローラーを参照するなど、循環参照がないことを確認することです。両方に強い参照があります。一方のコントローラーを破壊したと思うと、もう一方はそれを保持します。 、そうすると、メモリが解放されなくなります。
もう1つの重要な点は、これ以上オブジェクトは必要ないことをコンパイラーに通知する必要があることです。これが、配列をnilに設定する必要がある理由です。そのため、コンパイラーは、配列を解放するコマンドを追加するだけです。 ARCは単なる自動参照カウントであり、実行時にではなくコンパイラによって実行されるためです。これで、コンパイラがリリース呼び出しを追加します。
だからあなたのポイントに答える:
1-アークには、もう使用していないオブジェクトをnilに設定するなど、従わなければならないいくつかのルールがあるため、常にメモリを気にする必要があります。
2-あなたの例では、いくつかの点に注意する必要があります。最初に、2番目のウィンドウへの参照がないことを確認する必要があります。また、Objective-cのため、配列をnilに設定する必要があります。ガベージコレクターはありません。ちょうど今、参照カウントは明示的ではありません。