Clang静态分析和Instruments来剖析代码有一些不同,Clang更致力于在编译的过程中通过自身的一套判断机制来找出代码中潜在的隐患。
在XCode 3.2之后的版本里,Clang已经被集成进来,Static Analysis 是基于 Clang 的非常好的静态代码分析工具。可以从xcode直接运行Static Analysis 分析器。
Static Analysis 优点:
1、使用操作容易。
2、能够在编码阶段,开发自行进行代码检查。早期发现代码隐患。
3、直接分析源代码来发现程序中的错误,而不需要实际运行。
4、自动检测objective-C程序中的BUG,发现内存泄露和其它问题。
5、内存问题发现越早,解决的代价就越小。
使用方法:
1、确保你的程序没有被编译过(编译过了就使用Clean all targets清除编译shift+cmd+k)
2、点击Product > Analyze (shift+cmd+b)
3、如果你的程序代码有问题,在编译完成之后,右下角的原来提示warning 和 error的地方现在变成了这样
4、现在你可以像解决以前的warning 或者 error一样,对提示的地方点进去。
5、可能会存在问题的一些情况:
点击进去:
发现item初始化了但没有用到这个模型中的属性,所以改成:
XWRequirementItem *item;
6.shift+cmd+k 清理工程 shift+cmd+b 再次分析结果,如下图:
其他可能存在的问题:
1. 内存泄漏
2.对象引用
3.未使用的变量
4.未使用到的函数
5.未初始化的变量
6.数据赋值问题等等。。。
建议使用场景:
1、建议在开发编码阶段使用,直接分析源代码来发现程序中的错误,而不需要实际运行,提前发现代码隐患。
2、测试在冒烟测试时可先进行扫描,错误太多代码修改量太大的情况下可暂不介入测试,以免造成返工。