iOS开发中,一般的内存分析,主要是看看有没有内存泄露。xcode中提供了两种:静态分析和动态分析。
静态分析工具(Analyze)
1.快捷键:shift+command+B
2.注意:很多开发者总以为Analyze
是检测内存泄露,但其实它只是单纯的检测语法缺陷。
3.Analyze
只是分析上下语句的逻辑。
4.Analyze
只能帮我们检测到一部分可能泄露的代码,到时候需要自己判断处理,程序不会运行。
例如:创建了两个类Person和Dog,分别在他们的接口文件中,引入彼此的头文件,创建全局变量,如下图所示:
在控制器中:
告诉你,这两个类的对象
never read
,就是没有使用。
但是,如果下面两句代码不注释掉,静态分析就没有问题了,需要我们自己在类中,加入dealloc
方法,来判断,两个对象有没有被释放。
动态分析工具(instruments)
1.快捷键:command+i
2.检测内存泄露---->leaks
选项打开检测工具。
3.内存泄露:创建了对象,使用完毕没有释放,将来就有可能造成内存泄露,内存泄露主要用于MRC的内存检测。
4.在ARC下也会有泄露的发生:循环引用,Core Foundation
还是上面的代码:
查看问题:
直接点击右上角的xcode图标,可以直接跳到有内存泄露的代码,一目了然,直接修改!优势很明显!
单元测试
首先开发功能逻辑代码,需要对逻辑代码做测试,测试代码可以写在主程序中,但一般我们都不会这么做,所以就有了单元测试。
例如:现在创建一个工具类,写了一个类方法,传入两个整数,返回两个整数的和:
添加单元测试模块:
或者自己添加test文件:
开始测试:
出现红叉,说明有问题: