8

アプリケーションのさまざまなビューとコントローラーに渡されるオブジェクトがいくつかあります。私が期待しているときに、割り当てが解除されていません。明らかに、どこかに誤ったストロング ポインターがありますが、それが存在する可能性のある場所の表面積は非常に大きく、これらのオブジェクトは多くの異なるデータ構造に出入りしています。

ここでの私の通常の解決策は、Leaks (サイクルを報告しない) と Allocations (このオブジェクトの 500 以上の保持/解放をリストする) です。ここで検索スペースを減らす方法はありますか?

理想的には、ポインターを入力してオブジェクトへのすべての強い参照を表示できるツールがあれば、おそらくリストを見て余分な参照を約 60 秒で見つけることができます。実際、そのようなツール (オブジェクト グラフ インストゥルメント) はありますが、iOS ソフトウェアでは使用できません。

4

2 に答える 2

19

割り当て手段が必要です。個々のオブジェクト タイプを追跡するには、アプリケーションを起動します。重要なイベントごとにヒープショットを作成する必要があります (私は通常、View Controller との間で遷移した直後にヒープショットを作成します)。

追跡したいオブジェクトを含むヒープショットを取得したら、ヒープショットの開示用三角形の下でそのオブジェクト タイプを見つけることができるはずです。そのタイプの各オブジェクトについて、そのオブジェクトの行の矢印をクリックすると、そのオブジェクトに送信された保持およびリリースの履歴を取得できます。

于 2013-03-28T17:38:51.687 に答える