Auf Seite 17 dieser WWDC14-Präsentation heißt es
Arbeiten mit Objective-C? Autorelease-Pools müssen noch verwaltet werden Autorelease-Pool
{/ * code * /}
Was bedeutet das? Bedeutet dies, dass autoreleasepool {}
es unnötig ist , wenn meine Codebasis keine Objective-C-Dateien enthält ?
In einer Antwort auf eine verwandte Frage gibt es ein Beispiel, wo autoreleasepool
es nützlich sein kann:
- (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 autoreleasepool
gelöscht in Swift übersetzt wird, ist Swift dann klug genug zu wissen, dass die number
Variable nach dem ersten freigegeben werden sollte }
(wie es einige andere Sprachen tun)?
autoreleasepool
In Swift scheint es keine Dokumentation zu geben . Ich habe Ihre Frage erweitert und in den Entwicklerforen gestellt .