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,
->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
建議修改方案:
2、無效數據監測(Dead store)
3、邏輯錯誤監測(Logic error)
如上代碼,當Tag不等於1、2和3的時候,就會出現很問題了。len is a garbage value。建議在聲明變量時,同時進行初始化。
目前筆者在使用Xcode Analyze時,只發現了以上3鍾錯誤,後面如有新的發現,再添加上
手動內存管理內存的時候,要養成隨後把自己創建的對象安全釋放,忘的時候可以用這個Analyze幫助你查找可能內存泄露的地方