第17页,共this WWDC14 presentation页,上面写着
与Objective-C合作?仍然需要管理自动释放池
这是什么意思?这是否意味着,如果我的代码库没有任何Objective-C文件,那么autoreleasepool {}
是不必要的?
在an answer of a related question中,有一个例子是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
变量应该在前}
个变量之后释放(就像其他一些语言一样)?