Neden ARC düzenli bir sürüm kullanmıyor?ARC neden zayıf referansları kullanırken otomatikleştiriyor?
Örnek:
Anladığım kadarıyla[weakObject doSomething];
, ARC bu dönüşür:
Object *strongObject = objc_autorelease(objc_loadWeakRetained(weakObject));
[strongObject doSomething];
Neden ARC yerine bu yapmaz ?:
Object *strongObject = objc_loadWeakRetained(weakObject);
[strongObject doSomething];
objc_release(strongObject);
ben istiyorum ARC'de mümkün olduğunca çok sayıda otorite ile uzaklaşmak ister. Ben doğru oluşturulan derleme kodu anlarsanız ARC derleyici bu şekilde neden yaptığını
dispatch_async(self.myQueue, ^{
@autoreleasepool{
[weakObject doSomethingBig];
}
});
Temel olarak, yeterince akıllı bir derleyici eksikliği. Muhtemelen dosyalanmış ve kesinlikle bilinmesine rağmen, hata raporuna değer olabilir. –
ZayıfObject nereden geliyor? –