当在block里面引用 self 的方法等等的时候,通常会报一个这样的错误:
capturing 'self' strongly in this block is likely to lead to a retain cycle
因为在block的时候,会被retain一次,所以,解决的办法就是把引用对象变成弱引用,具体如下:
__block viewController *ctl = self;
[....^{
[ctl 方法对象等];
}];
这样报错就解决了。
本文介绍了解决Objective-C中Block导致的强引用循环(retain cycle)问题的方法。通过将Block内的self引用转换为弱引用(__block),可以避免因Block自身特性带来的内存泄露风险。
当在block里面引用 self 的方法等等的时候,通常会报一个这样的错误:
capturing 'self' strongly in this block is likely to lead to a retain cycle
因为在block的时候,会被retain一次,所以,解决的办法就是把引用对象变成弱引用,具体如下:
__block viewController *ctl = self;
[....^{
[ctl 方法对象等];
}];
这样报错就解决了。

被折叠的 条评论
为什么被折叠?