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