美文网首页SO 问题来了
__weak typeof(self) weakSelf = s

__weak typeof(self) weakSelf = s

作者: 失忆的程序员 | 来源:发表于2016-08-08 11:01 被阅读10次

block对于其变量都会形成strong reference,

对于self也会形成strong reference ,

而如果self本身对block也是 strong reference 的话,

就会形成 strong reference 循环,造成内存泄露,

为了防止这种情况发生,

在block外部应该创建一个week(__block) reference。

所以在block内如果有self的话,

一般都会在block外面加一句_block typeof(self) bself = self;

__block typeof(self) bself = self;

[self methodThatTakesABlock:^ {

[bself doSomething];

}

相关文章

网友评论

    本文标题:__weak typeof(self) weakSelf = s

    本文链接:https://www.haomeiwen.com/subject/bsqrsttx.html