Questions tagged «ownership»

4
__weak和__block引用之间有什么区别?
我正在阅读Xcode的文档,这使我感到困惑: __block typeof(self) tmpSelf = self; [self methodThatTakesABlock:^ { [tmpSelf doSomething]; }]; 以下是从文档中复制的: 块是对其捕获的变量的有力参考。如果 self在块内使用,则该块形成对的强引用self,因此,如果 self对块也有强引用(通常这样做),则会产生强引用循环。为了避免循环,您需要__block在块外创建一个对自身的弱引用(或引用),如上例所示。 我不明白“弱(或__block)”是什么意思? 是 __block typeof(self) tmpSelf = self; 和 __weak typeof(self) tmpSelf = self; 这里完全一样吗? 我在文档中发现了另外一块: 注意:在垃圾回收的环境中,如果将__weak和 __block修饰符都应用于变量,则该块将无法确保其保持活动状态。 所以,我完全不解。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.