美文网首页
使用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