概念
兩個(gè)對(duì)象相互持有,這樣就會(huì)造成循環(huán)引用,如下圖所示

注意
只要 block中用到了對(duì)象的屬性或者函數(shù),block就會(huì)持有該對(duì)象而不是該對(duì)象中的某個(gè)屬性或者函數(shù)。
__block __weak __typeof(_currentModel) weakModel = _currentModel;
self.aView = [[HYBAView alloc] initWithBlock:^(id model) {
// 假設(shè)要更新model
weakModel = model;
}];
疑惑:_currentModel 本身就是實(shí)例變量,這里為什么還要加上__block ?
猜測(cè):__typeof之后,編譯器無(wú)法識(shí)別weakModel是否是實(shí)例變量,編譯器把它當(dāng)做是局部變量了,所以要加上 __block