Block循环引用问题(Objective-c)
Posted dhui69
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Block循环引用问题(Objective-c)相关的知识,希望对你有一定的参考价值。
造成循环引用的简单理解是:Block的拥有者在Block作用域内部又引用了自己,因此导致了Block的拥有者永远无法释放内存,就出现了循环引用的内存泄漏
示例代码
@interface ObjTest () NSInteger testValue; @property (copy, nonatomic) void (^block)(); @end @implement ObjTest - (void)function /* //这里会循环引用 self.block = ^() self.testValue = 100; ; */ __weak ObjTest* weakSelf = self;//使用弱引用,解决循环引用问题 self.block = ^() weakSelf.testValue = 100; ; @end
再看下面的例子
以上是关于Block循环引用问题(Objective-c)的主要内容,如果未能解决你的问题,请参考以下文章
解决MVC Json序列化的循环引用问题/EF Json序列化循引用问题---Newtonsoft.Json
解决MVC Json序列化的循环引用问题/EF Json序列化循引用问题---Newtonsoft.Json