关于block中使用weakSelf和strongSelf的问题

有时候咱们会碰到这种状况,spa

__weak typeof(self) weakSelf = self;class

[obj block:^(){变量

  __strong typeof(weakSelf)strongSelf = weakSelf;循环

}];引用

咱们都知道第一句是为了解决block的循环引用问题,那么在block中的语句是干什么用的呢?word

 

网上查阅资料知道:di

在block中调用 self会引发循环引用,可是在block中须要对weakSelf进行 strong,保证代码在执行到block中,self不会被释放,当block执行完后, 会自动释放该strongSelf;
由于仅仅使用__weak去修饰变量,当别处把变量释放后,block中该变量也会被释放掉。
相关文章
相关标签/搜索