一般在block中修改变量都需要事先加__block进行修饰。
在非arc中,__block修饰的变量的引用计算是不变的。
在arc中,会引用到,并且计算+1;
非arc下可使用(arc直接使用__weak即可)
//非ARC
__block typeof(self) weakSelf = self;
self.myBlock = ^(int paramInt){
//使用weakSelf访问self成员
[weakSelf anotherFunc];
};
这样可以解决循环引用问题。
网友评论