IOS中内存管理那些事

2020-01-14 16:18:03王振洲

(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」工具集。

IOS中内存管理那些事

然后选择「Leaks」,再单击右下角的「Choose」按钮进入检测界面,这时点击左上角的「Record」红色圆点按钮开始检测。

IOS中内存管理那些事

 

IOS中内存管理那些事

 

IOS中内存管理那些事

 

IOS中内存管理那些事