2

我知道有几种方法可以做到这一点。但我想检查我所做的方式是否会导致泄漏。

我的项目中有一个块(使用 ARC),为了防止保留周期,我做了以下操作

 id __block blockSelf = self;

然后在块内用blockSelf替换self。这是一个好的编码习惯吗

干杯

4

2 回答 2

3

您的代码仍将在块内保留一个 self 对象 - 我执行以下操作:

__weak SomeObject *weakSelf = self;

也看到这个答案

希望这可以帮助!

于 2012-04-26T10:29:55.013 回答
0

对于 MRC,

__block id blockSelf = self;

不会保留“自我”。

但是,对于 ARC,它不起作用。你必须使用:

__weak id weakSelf = self;
于 2015-07-22T09:30:12.157 回答