在WWDC14演示文稿的第17页上,它说
使用Objective-C?仍然必须管理自动释放池
autoreleasepool {/ *代码* /}
那是什么意思?这是否意味着如果我的代码库中没有任何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);
}
}
}
}
如果上面的代码通过autoreleasepool
拖放转换为Swift ,Swift是否足够聪明,知道number
应该在第一个变量之后释放变量}
(就像其他语言一样)?
autoreleasepool
Swift中似乎没有任何文档。我扩展了您的问题,并在开发论坛中提出了这个问题。