首页 > 代码库 > capturing self strongly in this block is likely to lead to a retain cycle

capturing self strongly in this block is likely to lead to a retain cycle

一个使用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!"];  
};


capturing self strongly in this block is likely to lead to a retain cycle