美文网首页iOS进阶指南iOS学习开发iOS学习笔记
对 block 自动循环引用的一点见解

对 block 自动循环引用的一点见解

作者: 马爷 | 来源:发表于2016-05-18 12:00 被阅读73次

    首先当前这个 block 肯定就是全局的了
    @property (nonatomic, copy) void (^viewBlock)();
    如果当前这个类使用 block 的话
    self.viewBlock = ^()
    { };
    里面如果不引用当前类的任何方法 那么就不会形成循环引用
    如果当前类有这么一个方法
    - (void)loadData
    {}

    block 引用了当前这个方法
    self.viewBlock = ^()
    {
        [self loadData];
    };
    
    那么一定会引起循环引用  
     因为一个类销毁之前 当前这个类的的全局属性肯定在这个类销毁之前肯定会销毁的
     所以说 这些属性不销毁的话  那么当前这个类肯定不会销毁的  
    使用 weak 的原因就是为了先让当前类全部的全局属性销毁 
    然后当前这个类也就销毁了

    相关文章

      网友评论

        本文标题:对 block 自动循环引用的一点见解

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