如果只在块中启动方法调用,块是否需要弱化self?

时间:2017-03-22 20:52:51

标签: objective-c

如果某个块仅使用self调用方法,是否需要将其弱化以防止保留周期?

这不是另一篇文章的重复,我不是在询问是否需要在UIView动画块中完成,而是在self块只调用方法调用时是否需要完成。我也添加了一个dispatch_async示例。

@weakify(self);

// Need to strongify?
dispatch_async(dispatch_get_main_queue(), ^{
    @strongify(self);
    [self doSomething];
});

// Need to strongify?
[UIView animateWithDuration:0.125 animations:^{
    @strongify(self);
    [self layoutIfNeeded];
}

1 个答案:

答案 0 :(得分:2)

在这种情况下,您不需要削弱,因为该块不会被自己保留。所以没有保留周期。

Do we need to use __weak self inside UIAnimationBlocks in ARC?