iOS 常用调试方法:静态分析

栏目: IOS · 发布时间: 5年前

内容简介:级别: ★☆☆☆☆标签:「Xcode静态分析」「Analyze」「potential leak」作者: Xs·H

级别: ★☆☆☆☆

标签:「Xcode静态分析」「Analyze」「potential leak」

作者: Xs·H

审校:QiShare团队

在iOS项目开发过程中,常用到静态分析(Analyze)、断点(Breakpoint)和控制台(Console)进行代码调试。本篇文章介绍Xcode常用调试方法之“静态分析”。

一、简介

Xcode的静态分析功能是在程序未运行的情况下,对代码的上下文语义、语法、和内存情况进行分析,可以检测出代码潜在的文本本地化问题(Localizability Issue)、逻辑问题(Logic error)、内存问题(Memery error)、数据问题(Dead store)和语法问题(Core Foundation/Objective-C)等。功能入口在 Xcode菜单栏 -> Product -> Analyze (Command+Shift+B)。图示如下。

iOS 常用调试方法:静态分析

二、文本本地化问题

当工程 Target -> Build Settings -> Static Analyzer 下的 Missing Localizability 设置为 YES 时,使用 Analyze 功能后可以发现一些控件会提示文本本地化问题 User-facing text should use localized string macro 。图示如下:

iOS 常用调试方法:静态分析

按照提示,使用 NSLocalizedString(<#key#>, <#comment#>) 修饰文本即可修复,图示如下:

iOS 常用调试方法:静态分析

或者,将 Missing Localizability 设置为 NO 也可以。图示如下:

iOS 常用调试方法:静态分析

三、逻辑问题

使用 Analyze 可以分析出来代码中潜在的逻辑问题。比如直接使用NSNumber的对象作为条件时,会得到提示 Converting a pointer value of type 'NSNumber *' to a primitive boolean value; instead, either compare the pointer to nil or call -boolValue 。图示如下:

iOS 常用调试方法:静态分析

根据提示,我们有两种修改方式,图示如下:

iOS 常用调试方法:静态分析
iOS 常用调试方法:静态分析

虽然这两种修改方式都能解决问题,但不完全一样,要注意其中的差别,选择需要的使用。

四、内存问题

虽然 ARC 帮助开发者管理了大部分的内存问题。但像 CGImageRef 等C系列的代码还需要开发者管理内存。这些内存问题在编译过程中很难发现,但使用 Analyze 可以给出相应的提示。图示如下:

iOS 常用调试方法:静态分析

上图中有两处和内存相关的提示,开发者可以按照提示进行相应的修改。图示如下:

iOS 常用调试方法:静态分析

五、数据问题

在编码过程中,一些数据问题可以通过 Analyze 很好的提示出来。比如下图:

iOS 常用调试方法:静态分析

上图中的 string 被提示在初始化后从未被用到。是因为第二部的赋值操作为string重新申请了内存。这时,开发者去掉第一步初始化方法即可。图示如下:

iOS 常用调试方法:静态分析

六、语法问题

在重写类的 init 方法时,有时会手误写出语法问题,这时可以使用 Analyze 检测出问题。图示如下:

iOS 常用调试方法:静态分析

根据提示自己检查可以知道是 if 语句写错了,多了一个 = 。修改如下:

iOS 常用调试方法:静态分析

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Foundations of PEAR

Foundations of PEAR

Good, Nathan A./ Kent, Allan / Springer-Verlag New York Inc / 2006-11 / $ 50.84

PEAR, the PHP Extension and Application Repository, is a bountiful resource for any PHP developer. Within its confines lie the tools that you need to do your job more quickly and efficiently. You need......一起来看看 《Foundations of PEAR》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具