1. 程式人生 > >xcode Analyze進行程式碼靜態檢查

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,

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

@property (nonatomic, retain)   NSMutableString* content; 


建議修改方案:

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鍾錯誤,後面如有新的發現,再新增上!