http://mtl.recruit.co.jp/blog/2009/01/iphoneiphonesdk.html
つまり、デフォルトでは、autoreleaseされたインスタンスは、このプールにどんどん、追加されてゆく。ちょっとした文字列であっても NSString.stringWithFormatを乱発すると、メモリ不足になりかねないということです。注意、注意。
http://mtl.recruit.co.jp/blog/2009/01/iphoneiphonesdk.html
NSAutoreleasePoolはイベントループが一周するたびに生成と破棄を繰り返します。
ですので、アプリケーション終了まで、オブジェクトが溜まっていくということはありません。
たいていは、autorelease済みのオブジェクトはメソッドを抜けた後に解放されます。
ひとつのメソッドで、一時オブジェクトを大量に生成する場合は、メソッドを抜けるまではイベントループに戻らない(=オブジェクトが解放されない)ので、ループ中に自分でNSAutoreleasePoolを作ったほうがいい場合があります。
for (id obj in objects) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSString *str = [NSString stringWithFormat:@"%@", obj]; [pool release]; }