block 中使用 weakSelf
Posted —__MOMO__—
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了block 中使用 weakSelf相关的知识,希望对你有一定的参考价值。
在实际开发中,很多时候都在 block 中使用 weakSelf。那么什么时候需要使用 weakSelf,什么时候又不需要使用呢?
答案:当 block 不再被 self 持有,被其他对象所持有的时候,就不需要使用 weakSelf,举个例子,我们使用 UIView 的动画的时候,也就是
animateWithDuration的时候,就并不需要使用 weakSelf,因为他们的持有关系是,1.UIView 中某个负责动画的对象持有了 self 2.block 持有了 self,而不是 self 持有 block,因此并没有产生循环引用的问题。所以不需要使用 weakSelf。
当动画结束的时候,UIView 会结束持有这个 block,如果没有其他对象持有 block,block 会被释放,block 也会释放掉对self 的持有,整个内存引用关系被解除。
以上是关于block 中使用 weakSelf的主要内容,如果未能解决你的问题,请参考以下文章
iOS 面试题:什么时候在 block 中不需要使用 weakSelf --转自唐巧