码迷,mamicode.com
首页 > 其他好文 > 详细

block 中使用 weakSelf

时间:2016-12-02 02:20:28      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:动画   ima   循环引用   循环   引用关系   例子   elf   产生   uiview   

在实际开发中,很多时候都在 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

标签:动画   ima   循环引用   循环   引用关系   例子   elf   产生   uiview   

原文地址:http://www.cnblogs.com/hkyangvip/p/6124059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!