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

Block循环引用问题(Objective-c)

时间:2019-07-10 10:54:42      阅读:100      评论:0      收藏:0      [点我收藏+]

标签: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

再看下面的例子

 

Block循环引用问题(Objective-c)

标签:elf   释放内存   value   val   atom   weak   style   代码   object   

原文地址:https://www.cnblogs.com/dhui69/p/11162125.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!