2011-01-30 16 views
0

子オブジェクトの配列を含む親オブジェクトの配列を含むgrandfatherオブジェクトがある場合。オブジェクトを配列に追加してオブジェクトを解放したと仮定すると、オブジェクトをすべて解放するにはどうすればよいですか?祖父オブジェクトのremoveallobjectsを呼び出すことはできますか?私はこれを行うと、私はリーク:(オブジェクトのnsmutablearrayを持つオブジェクトのNSmutableArrayを持つオブジェクト - 解放する方法

感謝を取得

答えて

2

単に「祖父」オブジェクトにreleaseを呼び出す - それは、「子」オブジェクトなどをリリースする予定「親」オブジェクトを、解放します

NS(Mutable)Arrayをリリースすると、ポインタがあるオブジェクトが解放されます。もしそれらのオブジェクトがあれば、それを解放します。 NS(Mutable)Arraysであるため、ポインタを持つオブジェクトを解放します。

+0

これは、なぜ私がリークを取得しているのかわからない私の理解でした:( – Skeep

+1

あなたの子供が親を守っていないことを確認してください。 – vicvicvic

+1

これは、グラフ内の1つ以上のオブジェクトが別のものを保持していることを意味します。それはサイクルになるかもしれないし、単に失われたままになるかもしれない。 「Reference Countsを記録する」ように設定されたInstrumentsの割り当てプロファイルを使用すると、どのオブジェクトでも保持されていたすべての保持/解放を見ることができます。それは素晴らしいツールです! – ipmcc

関連する問題