Я новичок в ARC. Я хочу вызвать метод в полном блоке, но получаю предупреждение: Сильный захват себя в этом блоке может привести к циклу сохранения. . Код:
- (void) handlerComplete { //... } - (void) loadData { ... operation.completeBlock = ^(NSInteger index) { [self handlerComplete]; }; }
Любой совет? Спасибо.
Попробуйте с
- (void) loadData { __weak MyClassType *myClass = self; operation.completeBlock = ^(NSInteger index) { [myClass handlerComplete]; }; }
Вместо этого сделайте слабую ссылку:
operation.completeBlock = ^(NSInteger index) { __weak Foo *bar = self; [bar handlerComplete]; };
Я думаю, что это будет работать, хотя я не проверял это.