标签:elf 释放内存 value val atom weak style 代码 object
造成循环引用的简单理解是: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
再看下面的例子
标签:elf 释放内存 value val atom weak style 代码 object
原文地址:https://www.cnblogs.com/dhui69/p/11162125.html