使用Xcode Analyze進行代碼靜態檢查

Xcode是一個很是強大的IDE,最近使用Xcode Analyze對代碼進行代碼靜態檢查,嚐到了很多甜頭。this

運行Xcode Analyze方法   atom

Product---->Analyzespa

一、可能存在的內存泄漏監測(Memory)
code

運行Analyze後,查看一處Memory警告,能夠看到以下代碼:Potential leak of an object。orm

注意上面的代碼並非L63行存在泄漏,咱們點擊「Potential leak of an object」前面的箭頭,指示會出現一些變化,以下圖。對象

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

alloc一個對象的時候,其內存計數內存計數(retain count)+1,it

  1. [[NSMutableString alloc] init]  io

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

由於content的setter方發會將object的內存計數+1,以下代碼,content是retain屬性。執行完L62代碼後,self.content的內存計數就爲 2

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


建議修改方案:

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


二、無效數據監測(Dead store)

無效數據如:Unused、Never read....這個比較簡單,就不貼代碼了!

三、邏輯錯誤監測(Logic error)

如上代碼,當Tag不等於一、2和3的時候,就會出現很問題了。len is a garbage value。建議在聲明變量時,同時進行初始化。


目前筆者在使用Xcode Analyze時,只發現了以上3鍾錯誤,後面若有新的發現,再添加上!

相關文章
相關標籤/搜索