Извините, я новичок в программировании какао, и я не уверен, действительно ли я понимаю, как работает nsautoreleasepool.
Везде, где я читаю, что-то говорится о NSAutoreleasePool, отвечающем за все вызовы авто-выпуска (говоря опоследний объявленный NSAutoreleasePool).
Учитывая следующий код:
int main(int argc, char *argv[]) {
//NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
//[pool release];
return retVal;
}
в какой-то момент моего приложения у меня также было бы что-то близкое к этому:
NSString* b = [[NSString alloc] initWithFormat:@"%d", 10];
[b autorelease];
Учитываячто у меня NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
нигде нет ... разве [b autorelease];
не приводит к сбою приложения?Но приложение, кажется, работает нормально.
Замечание: я не собираюсь писать приложение без NSAutoreleasePool, я просто хочу получить представление о том, как это работает.Этот факт заставил усомниться в том, что я думал, что знал.