美文网首页
使用block时什么情况会发生引用循环,如何解决?

使用block时什么情况会发生引用循环,如何解决?

作者: iOS_Alex | 来源:发表于2016-08-19 10:14 被阅读161次

一个对象中强引用了block,在block中又强引用了该对象,就会发射循环引用。

解决方法是将该对象使用__weak或者__block修饰符修饰之后再在block中使用。

id weak weakSelf = self; 或者 weak __typeof(&*self)weakSelf = self该方法可以设置宏

id __block weakSelf = self;

或者将其中一方强制制空xxx = nil。

检测代码中是否存在循环引用问题,可使用 Facebook 开源的一个检测工具FBRetainCycleDetector

相关文章

网友评论

      本文标题:使用block时什么情况会发生引用循环,如何解决?

      本文链接:https://www.haomeiwen.com/subject/pzlbsttx.html