1

私のアプリケーションには 2 つのビュー コントローラーがあります。最初のものには、アニメーションでいっぱいの2番目のView Controllerを呼び出すためのボタンが1つしかありません。割り当てのあるインストゥルメントを実行している間、#living スロットで 12000 から始まります。2 番目のビュー コントローラーを閉じた後、#living カウントが 12000 に戻ることはありません。18000 のままです。3 番目のパスでは 24000 まで上がります。iOS 6 と arc を使用しています。アークはメモリの解放を処理するべきではありませんか? 2番目のView Controllerと、おそらくその中のすべてを閉じるたびに、これらの余分な6000についての手がかりはありますか?

ありがとうございました

4

1 に答える 1

0

ARC が保持解放を処理します。サイクルを防止、検出、または解決することはありません。つまり、オブジェクト A が B を保持し、それが A も保持します (またはオブジェクトのチェーンが長い場合は、そのバリエーション)。あなたまたは私がこれがどこから来たのかを推測するのではなく、Instruments を使用してサイクルを見つけることができます。たとえば、この以前の Stackoverflow の投稿を参照してください。Interwebs には、リテイン サイクルに関する読み物もたくさんあります (たとえば、Mike Ash のブログ)。

于 2012-12-18T20:25:21.723 に答える