我是ARC的新手。我想在一个完整的块中调用一个方法,但是我得到了警告:在这个块中强烈捕获'self'可能会导致保留周期。。代码:
- (void) handlerComplete
{
//...
}
- (void) loadData
{
...
operation.completeBlock = ^(NSInteger index) {
[self handlerComplete];
};
}
有什么建议吗?感谢。
答案 0 :(得分:2)
尝试
- (void) loadData
{
__weak MyClassType *myClass = self;
operation.completeBlock = ^(NSInteger index) {
[myClass handlerComplete];
};
}
答案 1 :(得分:0)
改为弱引用:
operation.completeBlock = ^(NSInteger index) {
__weak Foo *bar = self;
[bar handlerComplete];
};
我认为这会有效,但我还没有验证过。