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

如何解除循环引用

时间:2015-12-28 01:00:36      阅读:215      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!