//解決循環引用的第一種方式
//iOS 5.0 引用來解決循環引用的方式 和weak屬性關鍵字作用類似
//當對象被系統回收時 對象的地址 會自動指向 nil 不會出現野指針訪問
__weak typeof(self) weakSelf = self;
//解決循環引用的第二種方式
// __weak typeof(self) weakSelf = self;
//會引起 EXC_BAD_ACCESS 錯誤 是MRC 時代最常見的錯誤 野指針 --> 壞地址訪問
// 和 assgin屬性關鍵字的作用類似 對象被系統回收時 對象的地址不會自動指向nil
// iOS4.0 和block 一起推出的 用來解決循環引用的
__unsafe_unretained typeof(self) weakSelf = self;
//第三種解決方式
//weak-strong-dance wwdc 推出的解決方式 在AFN中被大量的運用到
__weak typeof(self) weakSelf = self;
[self.tools loadData:^(NSString *result) {
//閉包中對弱引用的weakSelf 在強引用一下
__strong typeof(weakSelf) strongSelf = weakSelf;
NSLog(@"%@ %@",result,strongSelf);
}];
VC -- strong -- tools
tools --strong - block
block -- strong -- vc