使用__block与self

时间:2012-04-26 10:20:50

标签: objective-c ios block

我知道有几种方法可以做到这一点。但我想检查一下我做的方式是不是造成泄漏。

我的项目中有一个块(使用ARC)并阻止保留周期我已完成以下操作

 id __block blockSelf = self;

然后在块中用blockSelf替换self。这是一个很好的编码实践

干杯

2 个答案:

答案 0 :(得分:3)

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

__weak SomeObject *weakSelf = self;

另见this answer

希望这有帮助!

答案 1 :(得分:0)

对于MRC,

__block id blockSelf = self;

不会保留' self'。

然而,对于ARC来说,它并不起作用。你必须使用:

__weak id weakSelf = self;