首先当前这个 block 肯定就是全局的了
@property (nonatomic, copy) void (^viewBlock)();
如果当前这个类使用 block 的话
self.viewBlock = ^()
{ };
里面如果不引用当前类的任何方法 那么就不会形成循环引用
如果当前类有这么一个方法
- (void)loadData
{}
block 引用了当前这个方法
self.viewBlock = ^()
{
[self loadData];
};
那么一定会引起循环引用
因为一个类销毁之前 当前这个类的的全局属性肯定在这个类销毁之前肯定会销毁的
所以说 这些属性不销毁的话 那么当前这个类肯定不会销毁的
使用 weak 的原因就是为了先让当前类全部的全局属性销毁
然后当前这个类也就销毁了
网友评论