首页 > 其他 > 详细

如何解除循环引用

时间:2015-12-28 00:57:35      阅读:238      评论:0      收藏:0      [点我收藏+]

定义block的时候,会对外部变量做一次copy,会对self进行强引用

1.__weak是ios 5.0 推出的

 __weak 相当于weak 本身是弱引用,但是如果对象被释放,执行的地址会指向nil 更安全

__weak typeof(self) weakSelf = self;

2__unsafe_unretained 是ios4.0 推出的,相当于assign,不会做强引用,但是日过对象被释放,内存地址保持不变,如果此时在调用,快就会出现野指针错误 MRC经典错误,EXC_BAD_ACCESS

__unsafe_unretained typeof(self) weakSelf = self;

3.__weak typeof(self) weakSelf = self; __strong typeof(self) strongSelf  = weakSelf; strongSelf 强引用,对weakSelf 进行强引用,本意,希望在异步完成后,继续执行回调代码   开发中有人会用这种代码,认识就好!

如何解除循环引用

原文:http://www.cnblogs.com/Jusive/p/5081303.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!