美文网首页
关于Masonry的使用

关于Masonry的使用

作者: 胡胡LoL | 来源:发表于2017-11-01 00:38 被阅读29次

    1.Mansonry不用弱引用 为什么不会循环引用?

    -(NSArray )mas_makeConstraints:(void(^)(MASConstraintMaker ))block {
    self.translatesAutoresizingMaskIntoConstraints = NO;
    MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self];
    block(constraintMaker);
    return [constraintMaker install];
    }
    

    这个和网络请求里面使用self道理是一样的。因为UIView未强持有block,所以这个block只是个栈block,而且构不成循环引用的条件。栈block有个特性就是它执行完毕之后就出栈,出栈了就会被释放掉。看mas_makexxx的方法实现会发现这个block很快就被调用了,完事儿就出栈销毁,构不成循环引用,所以可以直接放心的使用self。

    masonry里面没有额外引用起来,block执行完之后就随着方法执行完之后就销毁了,不存在一直被引用释放不了的问题,所以无需weak,当然weak也无所谓。

    相关文章

      网友评论

          本文标题:关于Masonry的使用

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