美文网首页NiceiOS Instruments
Xcode Analyze进行代码静态检查

Xcode Analyze进行代码静态检查

作者: ZHANG_GO | 来源:发表于2016-12-08 15:34 被阅读96次

    Xcode是一个非常强大的IDE,最近使用Xcode Analyze对代码进行代码静态检查,尝到了不少甜头。

    Analyze主要分析以下四种问题:

    1、逻辑错误:访问空指针或未初始化的变量等;

    2、内存管理错误:如内存泄漏等;

    3、声明错误:从未使用过的变量;

    4、Api调用错误:未包含使用的库和框架。

    运行Xcode Analyze方法

    Product---->Analyze

    1、可能存在的内存泄漏监测(Memory)

    运行Analyze后,查看一处Memory警告,可以看到如下代码:Potential leak of an object。

    注意上面的代码并不是L63行存在泄漏,我们点击“Potential leak of an object”前面的箭头,指示会出现一些变化,如下图。

    ->1. Method returns an Objective-C object with a +1 retain count

    alloc一个对象的时候,其内存计数内存计数(retain count)+1,

    [cpp]view plaincopyprint?

    [[NSMutableString alloc] init]

    ->2.Object leaked: allocated object is not referenced later in this execution path and has a retain count of +1

    因为content的setter方发会将object的内存计数+1,如下代码,content是retain属性。执行完L62代码后,self.content的内存计数就为 2

    [cpp]view plaincopyprint?

    @property (nonatomic, retain)   NSMutableString* content;

    建议修改方案:

    [plain]view plaincopyprint?

    self.content = [[[NSMutableString alloc] init] autorelease];

    2、无效数据监测(Dead store)

    无效数据如:Unused、Never read....这个比较简单,就不贴代码了!

    3、逻辑错误监测(Logic error)

    如上代码,当Tag不等于1、2和3的时候,就会出现很问题了。len is a garbage value。建议在声明变量时,同时进行初始化。

    相关文章

      网友评论

        本文标题:Xcode Analyze进行代码静态检查

        本文链接:https://www.haomeiwen.com/subject/hcidmttx.html