メモリの警告が表示されたら、NSMutableArrayに格納されているオブジェクトを解放します。NSArrayを解放するときにオブジェクトをnilに設定する
[_children release];
「私も(MEM警告が発生した可能性の後に)いくつかの点でオブジェクトを再帰する必要があるので、私はオブジェクトがまだ残っている場合、私はにISNどのnil-するための比較で行うれ、チェックする必要があります配列を解放しても何もないわけではないので動作しません。
繰り返し処理中に配列を変更することができないため、オブジェクトを1行ずつ削除してnilに設定することはできません。
私には明らかなものがありません。私は配列内のいくつかの値を+ nilにしたいだけです。
説明をありがとう。私は間違ったトラックにいて、回避策を見つけました。私はC++のバックグラウンドにいるので、すぐには分かりませんでした。あなたの例では、私はb == nilと仮定していたでしょう – Sam
あなたが実際に何をしているのかわからないので、私はよりよい解決法を提案できませんでした。配列内のオブジェクトが独自のクラスである場合、deallocメソッド(保持カウントがゼロになると呼び出されます)をオーバーライドすることができます。また、他のオブジェクト(デリゲートや通知をブロードキャストするなど)他のオブジェクトはあなたへの参照をゼロに更新できます。 – Mecki
C++の場合でも、オブジェクトへのポインタがあれば、オブジェクト自体が破棄されたときに保持しているアドレスはクリアされません。Objective-Cと同じように無効なポインタがあります。あなたはまだメモリが割り当てられていた場所を指すリファレンスを持っています... –