Я хотел кое-что уточнить.
Допустим, у меня есть следующий код:
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
for (int i = 0; i < 5000000; i++) {
NSString *s = [NSString stringWithFormat:@"Hello, %@!", @"World"];
}
}
В этом вызове функции будет создано 5 миллионов строк с автореализацией. Я ожидал, что это сохранит эти объекты до окончания приложения, так как единственное @autoreleasepool, которое я вижу, - это тот, который обертывает экземпляр приложения в main.m. Впрочем, это не так. В конце вызова этой функции кажется, что все они вызывают их освобождение и удаляются из памяти.
Этот документ:
Сообщает, что "Application Kit создает пул автозапуска в основном потоке в начале каждого цикла цикла событий и истощает его в конце, тем самым высвобождая любые объекты с автореализацией, сгенерированные при обработке события".
Это имеет смысл для меня, но это под UIKit, а не Application Kit. Мой вопрос: делает ли UIKit/ Cocoa Touch то же самое в этом случае, или есть другое объяснение, что мои объекты освобождаются?
Спасибо!