码迷,mamicode.com
首页 > 移动开发 > 详细

IOS block 对象强引用和若引用

时间:2016-12-21 09:36:30      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:强引用   有意思   转换   对象   意思   执行   strong   ret   control   

1. 在block外面这样:
__weak MyController *weakSelf = self 或者 __weak __typeof(self) weakSelf = self;

是为了防止强引用导致循环引用

2.执行block方法体的时候也可以转换为强引用之后再使用
MyController* strongSelf = weakSelf; if (!strongSelf) { return; }

那么,里面变成强引用后,不是又导致循环引用了吗?
有意思的就在这里,IOS中,block内部,对弱应用的强引用,不会影响对象在外部的释放,同时,保证内部该对象也不会被提前释放。
这真是一个两全其美的办法。

IOS block 对象强引用和若引用

标签:强引用   有意思   转换   对象   意思   执行   strong   ret   control   

原文地址:http://www.cnblogs.com/SimonGao/p/6206241.html

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