今天用Xcode自帶工具Analyze檢測(cè)了自己正在做的項(xiàng)目,下面是遇到的問(wèn)題以及解決方法。
Analyze靜態(tài)分析
操作:在Xcode 選項(xiàng)欄里面選擇Product -> Analyze,點(diǎn)擊運(yùn)行即可。


我們來(lái)具體看看有哪些問(wèn)題

1、Localizability Issue (Apple)?
大概意思是:1、這里是非本地化的文字 2、面向用戶的文本應(yīng)使用本地化的字符串宏
別慌,下圖是 Xcode檢測(cè)到缺少本地化~~~ 請(qǐng)看下面解決辦法

解決方法:在 Build Settings 里面找到 Missing Localizability(缺少本地化) 設(shè)置為NO,就會(huì)忽略這個(gè)問(wèn)題啦, ?或者 , 你也可以在應(yīng)用里面進(jìn)行本地化。

2、Dead store ?
無(wú)效數(shù)據(jù):?意思就是有一些屬性或者對(duì)象初始化了又沒(méi)被使用

解決方法:去掉初始化方法,直接賦值

3、Logic error 邏輯錯(cuò)誤
Converting a pointer value of type 'NSNumber *' to a primitive boolean value;instead,either compare the pointer to nil or call -boolValue(將類型為“NSNumber *”的指針值轉(zhuǎn)換為原始布爾值; 相反,要么將指針與nil進(jìn)行比較,要么調(diào)用-boolValue)

問(wèn)題:使用NSNumber作為判斷條件的時(shí)候,沒(méi)有指定類型,編譯器不知道怎么判斷
解決辦法:指定 NSNumber 對(duì)象與 nil 進(jìn)行比較

4、Memory error 內(nèi)存錯(cuò)誤
nil passed to a callee that requires a non-null 1st parameter(nil傳遞給需要非null第一個(gè)參數(shù)的被調(diào)用者)

問(wèn)題:param 可能為nil?
解決辦法:通常這種情況下,只需要添加一個(gè)非空判斷,保證傳入的參數(shù)不為空即可
5、Core Foundation/Objective-C


解決:去掉一個(gè)“=” 號(hào),或者把 self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 提出來(lái)放 if 條件前面