На странице 17 это презентация WWDC14, говорится
Работа с Objective-C? Все еще нужно управлять пулами авторекламы
autoreleasepool {/* code */}
Что это значит? Означает ли это, что если в моей базе кода нет файлов Objective-C, autoreleasepool {}
не требуется?
В ответе на связанный вопрос, есть пример, где autoreleasepool
может быть полезным:
- (void)useALoadOfNumbers {
for (int j = 0; j < 10000; ++j) {
@autoreleasepool {
for (int i = 0; i < 10000; ++i) {
NSNumber *number = [NSNumber numberWithInt:(i+j)];
NSLog(@"number = %p", number);
}
}
}
}
Если приведенный выше код переводится в Swift с отбрасыванием autoreleasepool
, будет ли Swift достаточно умным, чтобы знать, что переменная number
должна быть выпущена после первого }
(как это делают некоторые другие языки)?