xcode Analyze進行程式碼靜態檢查
阿新 • • 發佈:2019-02-12
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鍾錯誤,後面如有新的發現,再新增上!