iOS面试题

__block在arc和非arc下含义

2015-08-01  本文已影响3235人  natewang

一般在block中修改变量都需要事先加__block进行修饰。
在非arc中,__block修饰的变量的引用计算是不变的。
在arc中,会引用到,并且计算+1;
非arc下可使用(arc直接使用__weak即可)

//非ARC
__block typeof(self) weakSelf = self;
self.myBlock = ^(int paramInt){ 
//使用weakSelf访问self成员
 [weakSelf anotherFunc];
};

这样可以解决循环引用问题。

上一篇 下一篇

猜你喜欢

热点阅读