> 如图,使用系统自带的UIView 的Blcok,控制器能被销毁-->说明没有循环引用。原理: UIView的调用的是类方法,当前控制器不可能强引用一个类 ,所以循环无法形成 --> 动画block不会造成循环引用的原因。所以通过实践得出第一个结论--> 并不是所有的Block中使用self,都会导致循环引用! 最常用的数据请求框架-- AFNetWorking框架的Block是否会强引用?
![](https://img.haomeiwen.com/i6693936/34d545ecf25d988f.png)
如上图所示,在AFN的 block { xxx self.view } 使用self,并不会导致循环引用!原理:AFN无循环是因为绝大部分情况下,你的网络类对象是不会被当前控制器引用的,这时就不会形成引用。AFN底层有自己做了操作
网友评论