3つめのコードがちょっと違います。 でもって本題ですが、Objective-CにはretainCountって物があって、それが0になると解放されるみたいです。(未だに良く理解してない) そしてretainCountはalloc, init, retainなどで増えて、releaseで減るみたいです。 だいたい見つけた使い方等は以下の3つ。スーパーpreがおかしい...? HOGE *hoge = [[HOGE alloc] init]; /* . . . */ [hoge release]; HOGE *hoge = [[[HOGE alloc] init] autorelease]; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; HOGE *hoge = [[HOGE alloc] init]; FOO *foo