(2)使用弱引用「Weak Reference」,「weak」「__weak」类型,这种方法常用。弱引用虽然持有对象,但是并不增加他的引用计数。弱引用的一个经典使用场景就是委托代理「delegate」协议模式。
2.2 Xcode 中有什么工具可以检测循环引用吗?
在 Xcode 中有「Instruments」工具集可以很方便地检测循环引用。
举个例子:
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableArray *mArrFirst = [NSMutableArray array];
NSMutableArray *mArrSecond = [NSMutableArray array];
[mArrFirst addObject:mArrSecond];
[mArrSecond addObject:mArrFirst];
}
可以选择「Product」下的「Profile」来打开「Instruments」工具集。
然后选择「Leaks」,再单击右下角的「Choose」按钮进入检测界面,这时点击左上角的「Record」红色圆点按钮开始检测。














