Na stronie 17 tej prezentacji WWDC14 jest napisane
Pracujesz z Objective-C? Nadal trzeba zarządzać pulami automatycznych
wydań autoreasepool {/ * kod * /}
Co to znaczy? Czy to oznacza, że jeśli moja baza kodu nie ma żadnych plików Objective-C, autoreleasepool {}
jest niepotrzebna?
W odpowiedzi na powiązane pytanie znajduje się przykład, który autoreleasepool
może być przydatny:
- (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);
}
}
}
}
Jeśli powyższy kod zostanie przetłumaczony na Swift z autoreleasepool
upuszczeniem, czy Swift będzie wystarczająco inteligentny, aby wiedzieć, że number
zmienna powinna zostać wydana po pierwszej }
(podobnie jak niektóre inne języki)?
autoreleasepool
w języku Swift nie ma dokumentacji . I rozszerzony na swoje pytanie i poprosił go na forach dev .