6
ARC爲什麼不能使用正式版本?爲什麼使用弱引用時ARC會自動釋放?
例子:
[weakObject doSomething];
據我瞭解,ARC變成這樣:
Object *strongObject = objc_autorelease(objc_loadWeakRetained(weakObject));
[strongObject doSomething];
爲什麼不ARC做到這一點,而不是?:
Object *strongObject = objc_loadWeakRetained(weakObject);
[strongObject doSomething];
objc_release(strongObject);
我會喜歡儘可能地去除ARC中的儘可能多的autoreleases。我做了很多異步線程與GCD,我最終不得不添加自動釋放池了很多:
dispatch_async(self.myQueue, ^{
@autoreleasepool{
[weakObject doSomethingBig];
}
});
基本上缺乏足夠智能的編譯器。可能值得一個錯誤報告,雖然它可能已被提交,並且是絕對已知的。 – 2013-05-11 03:07:53
你從哪裏得到weakObject? – 2013-05-11 03:58:34