Objective-C 2.0ではガベージコレクションが導入されて、メモリ管理がだいぶシンプルになりましたが、iPhone開発ではその恩恵に預かれませんので、色々と気を使います。 NSArrayに要素を追加した時、NSArrayはその要素オブジェクトにretainメッセージを送ってオーナーシップを獲得します。NSArrayが解放された場合、格納されているオブジェクトすべてにreleaseメッセージが送られます。また、格納した要素をNSArrayから削除した場合、その要素にreleaseメッセージが送られます。 なので、こういう書き方をするのはちょいとよろしくありません。 NSArray *array = [[NSArray alloc] initWithObjects: [[Foo alloc] init], [[Bar alloc] init],nil]; // なんらかの処理 [arr