一个使用Block语法的实例变量,在引用另一个实例变量的时候,经常会引起retain cycle。
capturing self strongly in this block is likely to lead to a retain cycle
_items = [[NSMutableArray alloc] init];
_block = ^{
[_items addObject:@"Hello!"]; //_block引用了_items,导致retain cycle。
};
写成下面格式
__block ViewController *blockSelf = self;
_block = ^{
[blockSelf->_items addObject:@"Hello!"];
};