weakSelf的使用

2017-12-22  本文已影响0人  承诺幸福

使用过weakself的都知道weakself的作用是为了避免循环引用而定义的。

使用weakself需要注意的三点:

 1: 谁主动发起的blk 

 2:谁是blk 具体的响应者 

 3:1和2 的关系 是不是强引用关系

需要关注的就是 对象方法中的循环引用,如果仅仅是个局部变量 直接self,如果是个全局的成员变量,那就基本上是会有循环的问题

那么有一个问题,是不是所有的block里面都需要去定义一个weakself呢?

图一:

图二:
图一是masonry的适配,里面引用了weakself来适配控件的大小,这里使用weakself基本上是没有问题的?
因为这里的适配是放在主线程中也必然是放在主线程中运行的,并且也不会提前释放,因ui的dealloc 肯定是主线程在跑。

block内部 你是不会因用到其他self 之外空间的布局的,所以这里用weakself绝对不会存在循环引用的情况,所以用不用问题不大。

上一篇下一篇

猜你喜欢

热点阅读