实验的开发环境:Xcode 7
一、使用Product-Analyze分析内存泄( 快捷键: cmd + shift + B )
APP程序开发完成后,可以利用Xcode的Analyze就能分析到哪里有内存泄露。
分析之后可以看到:
这里提示model没被释放,有内存泄露,那我们释放
[model release];
再Analyze分析,显示Build succeeded,不存在任何内存泄露,表明这个问题解决了。
二、使用Instruments的leaks工具分析内存泄露( 快捷键: cmd + ctrl + I )
利用Product-Analyze分析内存泄露,并不能把所有的内存泄露查出来,因为有的内存泄露是在运行时,用户操作时才产生的。那就需要用到Instruments了。
1.
Xcode打开一个已完成项目,选好模拟器,点击Run,让程序跑起来。
2.
点击Xcode菜单栏 Product -- Profile ( 快捷键: cmd + ctrl + I )。
3.
按上面操作,显示Build succeeded后,会跳出Instruments工具,选择Leaks(水龙头)选项。
4.
先按下红色的圆形按钮,再选择Leak,然后选择Call Tree,勾选选中Invert Call Tree 和Hide System Libraries。
5.
在模拟器中测试App各项功能,查看是否有代码出现内存泄露。
6.
定位内存泄露代码,并修改。
将故意注释掉的[model release];代码打开。
7.
再次测试是否存在内存泄露。
在添加了[model release];代码后,再重新Run,然后cmd + ctrl +I, 切换到Leaks界面,无论再怎么点击“加载音乐”按钮,都检测不到内存泄露了,表明内存泄露被堵住了。