Xcode之Analyze靜態(tài)分析

今天用Xcode自帶工具Analyze檢測(cè)了自己正在做的項(xiàng)目,下面是遇到的問(wèn)題以及解決方法。

Analyze靜態(tài)分析

操作:在Xcode 選項(xiàng)欄里面選擇Product -> Analyze,點(diǎn)擊運(yùn)行即可。

分析出651問(wèn)題

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

問(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)被使用

問(wèn)題代碼

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

解決代碼

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)

邏輯錯(cuò)誤

問(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)用者)

錯(cuò)誤

問(wèn)題:param 可能為nil?

解決辦法:通常這種情況下,只需要添加一個(gè)非空判斷,保證傳入的參數(shù)不為空即可

5、Core Foundation/Objective-C

1.假設(shè)條件不成立
2.在未設(shè)置為'[(超級(jí)或自我)初始化...]的結(jié)果時(shí)返回“自我”

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

這些就是我遇到的問(wèn)題,其他的問(wèn)題后續(xù)遇到再補(bǔ)充...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容