使用Xcode Analyze进行代码静态检查

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

运行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,

  1. [[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

  1. @property (nonatomic, retain)   NSMutableString* content;         


建议修改方案:

[plain]  view plain copy print ?
  1. 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时,只发现了以上3钟错误,后面如有新的发现,再添加上!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值