Ist es notwendig, autoreleasepool in einem Swift-Programm zu verwenden?
Auf Seite 17 vondiese WWDC14 Präsentation, es sag
Mit Objective-C arbeiten? Müssen noch Autorelease-Pools verwalten
autoreleasepool {/ * code * /}
Was bedeutet das? Bedeutet dies, dass, wenn meine Codebasis keine Objective-C-Dateien enthält,autoreleasepool {}
ist unnötig?
Imeine Antwort auf eine verwandte Frage, es gibt ein Beispiel, woautoreleasepool
kann nützlich sein
- (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);
}
}
}
}
Wenn der obige Code mit @ in Swift übersetzt wiautoreleasepool
fallen gelassen, wird Swift klug genug sein, um zu wissen, dass dienumber
Variable sollte nach dem ersten @ freigegeben werd}
(wie einige andere Sprachen auch)?