1 、循环引用就是当self 拥有一个block的时候,在block 又调用self的方法。形成你中有我,我中有你,谁都无法将谁释放的困局。
![](https://img.haomeiwen.com/i4668976/3864d3a338fb085a.png)
举个栗子:
页面1声明了一个block,然后在页面中给blcok赋值,然后又在赋值里面调用了self
self.myBlock = ^{
[selfdoSomething];
};
2、在页面2中声明了block,在页面1中声明了页面2
然后又在页面1中实例化页面2时赋值了页面2的block,在赋值中又调用了页面1的block
![](https://img.haomeiwen.com/i4668976/c8935165e10cc268.png)
![](https://img.haomeiwen.com/i4668976/6f342c73c742e2d3.png)
如果就会导致下图的状态
![](https://img.haomeiwen.com/i4668976/35f76a359f5a5032.png)
网友评论