Dlaczego ARC nie może używać zwykłego wydania?Dlaczego ARC autorelease podczas używania słabych odniesień?
Przykład:
[weakObject doSomething];
Z tego co rozumiem, to się okazuje ARC:
Object *strongObject = objc_autorelease(objc_loadWeakRetained(weakObject));
[strongObject doSomething];
Dlaczego nie ARC zamiast to zrobić ?:
Object *strongObject = objc_loadWeakRetained(weakObject);
[strongObject doSomething];
objc_release(strongObject);
ja jak pozbyć się jak największej ilości autoreleaseów w ARC. Robię dużo asynchronicznym gwintowania z GCD i skończę konieczności dodawania Pools autorelease dużo:
dispatch_async(self.myQueue, ^{
@autoreleasepool{
[weakObject doSomethingBig];
}
});
Brak odpowiednio inteligentnego kompilatora. Może być wart raportu błędu, choć prawdopodobnie został złożony i jest zdecydowanie znany. –
Skąd bierze się obiekt weakObject? –