Я читал Руководство по управлению памятью для ОС IPhone, и я не понял пункт в листинге раздела «Автозапуск пулов» - 1 пример кода:
void main()
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSArray *args = [[NSProcessInfo processInfo] arguments];
for (NSString *fileName in args) {
NSAutoreleasePool *loopPool = [[NSAutoreleasePool alloc] init];
NSError *error = nil;
NSString *fileContents = [NSString stringWithContentsOfFile:fileName
encoding:NSUTF8StringEncoding error:&error];
/* Process the string, creating and autoreleasing more objects. */
[loopPool release];
}
/* Do whatever cleanup is needed. */
[pool drain];
exit (EXIT_SUCCESS);
}
В нем говорится:
"... Кроме того, любые автоматически выпущенные объекты, созданные в контексте цикла for (например, fileName), освобождаются при освобождении loopPool, даже если им явно не отправлено сообщение автоматического выпуска."
Дело в том, что я не понял, как переменная fileName включена во второй пул (loopPool), а не в первый (пул).Разве fileName не создается, когда первый пул является самым верхним из пулов в стеке пулов?