block循环引用问题
2016-05-17 18:46
218 查看
先来说下为什么会产生循环引用。
self.Block=^{self.get(self.data);
}
对象中有一个Block属性,但在这个Block属性中又引用的对象的其他成员变量,那么就会对这个成员变量本身产生强引用,就造成你引用我,我也引用你,retain计数一直+1,就成了循环引用了。在ARC下改成
__weak typeof(self) *weakself = self;self.Block=^{
weakself.get(weak
self.data);
}
非ARC下
__blockUIViewController *weakself =
self;
self.Block=^{
weakself.get(weak
self.data);
}
在MRC中__block variable在block中使用是不会retain的
但是ARC中__block会Retain的。
相关文章推荐
- [Android] 在Ubuntu 12.04 (64bit)上使用搭建Android的调试环境:ADB USB Connection By root
- tcpdump 结合wireshark
- 玩转Android studio 插件开发、测试、JCenter库发布(4)
- iOS 用Applicaton Loader提交ipa到iTunes Connect ——iOS上线相关(二)
- P1117 拯救ice-cream tyvj
- ZOJ3201 Tree of Tree(树形DP)
- PHP去重可用
- HDU 4709 Herding
- gh0st错误修改
- 解决centos7最小化安装没有ifconfig和netstat
- 用eclipse导入jar包并使其在一个文件夹下
- 【leetcode】 260. Single Number III
- 变量关系探索
- Scrum领取任务
- window下使用bat复制文件夹
- IOS 时间标签
- NSDictionary/NSMutableDictionary
- 常见MATLAB小技巧
- 介绍Angular的注入服务
- 数据结构之排序