在iOS项目开发过程中,常用到静态分析(分析),断点(断点)和控制台(控制台)进行代码调试。本篇文章介绍Xcode常用调试方法之“静态分析”。
本文来自360年奇舞团QiShare团队投稿。
Xcode的静态分析功能是在程序未运行的情况下,对代码的上下文语义,语法,和内存情况进行分析,可以检测出代码潜在的文本本地化问题(本地化问题),逻辑问题(逻辑错误),内存问题(存储器错误),数据问题(死存储)和语法问题(核心基?objective - c)等。功能入口在Xcode菜单栏
→产品→分析(指挥+ Shift + B)。图示如下:
当工程目标→建立设置→静态分析器下的失踪本地化设置为是的时,使用分析功能后可以发现一些控件会提示文本本地化问题面向用户的文本应该使用本地化的字符串宏。图示如下:
按照提示,使用NSLocalizedString (& lt; #键#祝辞,& lt; #评论#祝辞)修饰文本即可修复,图示如下:
或者,将错过本地化设置为无也可以。图示如下:
使用分析可以分析出来代码中潜在的逻辑问题。比如直接使用NSNumber的对象作为条件时,会得到提示转换为一个指针类型的值“NSNumber *”原始的布尔值;相反,比较指针为零或叫-boolValue。图示如下:
根据提示,我们有两种修改方式,图示如下:
虽然这两种修改方式都能解决问题,但不完全一样,要注意其中的差,别选择需要的使用。
虽然弧帮助开发者管理了大部分的内存问题。但像CGImageRef等C系列的代码还需要开发者管理内存。这些内存问题在编译过程中很难发现,但使用分析可以给出相应的提示。图示如下:
上图中有两处和内存相关的提示,开发者可以按照提示进行相应的修改。图示如下:
在编码过程中,一些数据问题可以通过分析很好的提示出来,比如下图:
上图中的字符串被提示在初始化后从未被用到。是因为第二部的赋值操作为字符串重新申请了内存。这时,开发者去掉第一步初始化方法即可。图示如下:
在重写类的初始化方法时,有时会手误写出语法问题,这时可以使用分析检测出问题。图示如下:
根据提示自己检查可以知道是如果语句写错了,多了一个=P薷娜缦?
上述几部分内容只是对分析功能的举例,其实际能检测出的问题会更多。另外,分析也有自己的局限性,其检查结果也只是辅助开发者查找问题,真正优化代码需要开发者更多的技术经验。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。