之所以我们要在控制器中使用weak,是因为一般我们会这样做:
把block作为控制器的属性,在不block中使用self。这样就造成了当self想要释放的时候,block却持有它,导致self无法释放。因此我们如果不使用weak的haul还可以怎么办呢?
我们可以在页面消失的时候,把block属性置为nil。这样block就不再引用self了。也就意味着self要释放的时候,没有对象在引用它了。这样同样可以达到目的。
拓展:
AFNetworking中,不需要使用weak。这是为什么呢。因为,它在block回调后会将block置为nil。这样就导致了我们不需要使用weak了。依然不会出现内存泄漏。