调用一个块的方法?

我是ARC新手。 我想在一个完整的块中调用一个方法,但是我得到了这样的警告: 在这个块中强烈地捕获'self'可能会导致一个保留周期。 。 码:

- (void) handlerComplete { //... } - (void) loadData { ... operation.completeBlock = ^(NSInteger index) { [self handlerComplete]; }; } 

有什么build议? 谢谢。

尝试

 - (void) loadData { __weak MyClassType *myClass = self; operation.completeBlock = ^(NSInteger index) { [myClass handlerComplete]; }; } 

请改用一个弱引用:

 operation.completeBlock = ^(NSInteger index) { __weak Foo *bar = self; [bar handlerComplete]; }; 

我认为这将工作,虽然我没有证实。