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 でできるだけ多くの自動リリースを廃止したいと考えています。私は GCD で多くの非同期スレッドを実行しており、自動解放プールを何度も追加する必要があります。
dispatch_async(self.myQueue, ^{
@autoreleasepool{
[weakObject doSomethingBig];
}
});