iOS常用调试方法:静态分析
副问题[/!--empirenews.page--]
在iOS项目开拓进程中,常用到静态说明(Analyze)、断点(BreakPoint)和节制台(Console)举办代码调试。本篇文章先容Xcode常用调试要领之”静态说明“。 本文来自360奇舞团QiShare团队投稿。 一、简介 Xcode的静态说明成果是在措施未运行的环境下,对代码的上下文语义、语法、和内存环境举办说明,可以检测出代码隐藏的文本当地化题目(Localizability Issue)、逻辑题目(Logic error)、内存题目(Memery error)、数据题目(Dead store)和语法题目(Core Foundation/Objective-C)等。成果进口在Xcode菜单栏 -> Product -> Analyze(Command+Shift+B)。图示如下: 二、文本当地化题目 当工程Target -> Build Settings -> Static Analyzer下的Missing Localizability配置为YES时,行使Analyze成果后可以发明一些控件会提醒文本当地化题目User-facing text should use localized string macro。图示如下: 凭证提醒,行使NSLocalizedString(<#key#>, <#comment#>)修饰文本即可修复,图示如下: 可能,将Missing Localizability配置为NO也可以。图示如下: 三、逻辑题目 行使Analyze可以说明出来代码中隐藏的逻辑题目。好比直接行使NSNumber的工具作为前提时,会获得提醒Converting a pointer value of type 'NSNumber *' to a primitive boolean value; instead, either compare the pointer to nil or call -boolValue。图示如下: 按照提醒,我们有两种修改方法,图示如下: 固然这两种修改方法都能办理题目,但不完全一样,要留意个中的不同,选择必要的行使。 四、内存题目 固然ARC辅佐开拓者打点了大部门的内存题目。但像CGImageRef等C系列的代码还必要开拓者打点内存。这些内存题目在编译进程中很难发明,但行使Analyze可以给出响应的提醒。图示如下: 上图中有两处和内存相干的提醒,开拓者可以凭证提醒举办响应的修改。图示如下: 五、数据题目 在编码进程中,一些数据题目可以通过Analyze很好的提醒出来。好比下图: 上图中的string被提醒在初始化后从未被用到。是由于第二部的赋值操纵为string从头申请了内存。这时,开拓者去掉第一步初始化要领即可。图示如下: 六、语法题目 在重写类的init要领时,偶然会手误写出语法题目,这时可以行使Analyze检测出题目。图示如下: 按照提醒本身搜查可以知道是if语句写错了,多了一个=。修改如下: 总结 上述几部门内容只是对Analyze成果的举例,着实际能检测出的题目会更多。其它,Analyze也有本身的范围性,其搜查功效壹贝偾帮助开拓者查找题目,真正优化代码必要开拓者更多的技能履历。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |