代码改变世界

为什么要在block用weak self

2015-11-10 16:46  Y了个J  阅读(259)  评论(0编辑  收藏  举报

block会给内部所有的对象引用计数加一,这一方面会带来潜在的retain cycle,不过我们可以通过Weak Self的手段解决。另一方面比较重要就是,它会延长对象的生命周期。

 

在block前面写

__weak typeof(self) weakSelf = self;

 

还有一种写法

 

  __weak __typeof(self)weakSelf = self;

    AFNetworkReachabilityStatusBlock callback = ^(AFNetworkReachabilityStatus status) {

        __strong __typeof(weakSelf)strongSelf = weakSelf;