いくつかのオブジェクトを作成し、それらを配列に追加するとします。
House *myCrib = [House house];
House *johnHome = [House house];
House *lisaHome = [House house];
House *whiteHouse = [House house];
NSArray *houses = [NSArray arrayWithObjects: myCrib, johnHome, lisaHome, whiteHouse, nil];
通常、すべてのHouseオブジェクトの保持カウントは2ですが、自動解放されるのは1回です。しばらくしてmyCrib
、所有者でなくても、リリースすることにしました—保持または初期化したことはありません。
[myCrib release];
保持カウントがゼロになり、オブジェクトの割り当てが解除されます。今の私の質問は、この違法なアクションによってアプリが誤って動作したり、クラッシュしたりするのでしょうか、それともNSArray
単にオブジェクトをリストから削除して悪い結果をもたらすのでしょうか。
オブジェクトのリストを維持する方法を探していますが、リスト自体を維持したいと思っています。一部のオブジェクトが消えたら、そのオブジェクトへの参照を配列から適切かつ自動的に消えさせたいと思います。サブクラス化またはラッピングを考えていNSArray
ます。
ありがとうございました。