對(duì)于一個(gè)有強(qiáng)迫癥的我,每次 ?B
Build 項(xiàng)目時(shí),發(fā)現(xiàn)一個(gè)警告都要點(diǎn)進(jìn)去修復(fù)了,然而,對(duì)于一些無(wú)關(guān)緊要的警告,我們是否可以選擇忽略這個(gè)警告,讓 Xcode 不提示呢?答案當(dāng)然是可以的。
下面,就介紹一下在項(xiàng)目中忽略警告的三個(gè)地方:
在源文件中忽略警告
在一些第三方庫(kù)中,總能看到下面這段代碼的身影,這就是用于忽略某個(gè)警告
#pragma clang diagnostic push
#pragma clang diagnostic ignored "警告標(biāo)識(shí)符"
...
...
#pragma clang diagnostic pop
用法很簡(jiǎn)單,比如在控制器的 -viewDidLoad
中寫(xiě)了句創(chuàng)建一個(gè) eTestView
的代碼
UIView *eTestView = [[UIView alloc] init];
Xcode 會(huì)立即報(bào)一個(gè)警告,提示我們沒(méi)有使用這個(gè)變量
只需在創(chuàng)建 eTestView
的前后加上如下幾行,黃色警告就消失了??
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
UIView *eTestView = [[UIView alloc] init];
#pragma clang diagnostic pop
至于警告標(biāo)識(shí)符,鼠標(biāo)點(diǎn)幾下就可以找到。
如下圖,右擊某個(gè)警告,選擇 Reveal in Log
(有時(shí)這個(gè)選項(xiàng)可能是置灰狀態(tài),不能選擇,可以嘗試編譯下項(xiàng)目,或者退出 Xcode 重新來(lái)一次)
下圖紅色框中,中括號(hào)內(nèi)部的就是警告標(biāo)識(shí)符(先要點(diǎn)擊右上角展開(kāi)警告才能看到這一大堆信息)

在 Build Settings 中項(xiàng)目全局忽略警告
在項(xiàng)目的 Build Settings
中也可以設(shè)置忽略某種或多種類(lèi)型的警告,不過(guò)在這設(shè)置的影響范圍就是整個(gè)項(xiàng)目的了,要三思而后行,不然就是給自己挖坑。
還是上面的例子,在 Build Settings
中找到 Custom Compiler Flags
,雙擊 Other Warning Flags
(可以配置 Debug
和 Release
環(huán)境),填入 -Wno-unused-variable
,完成后,編譯項(xiàng)目,項(xiàng)目中所有的此類(lèi)型警告都沒(méi)有了。
這里所填寫(xiě)的內(nèi)容規(guī)則,僅僅是在第一種方法中找到的警告標(biāo)識(shí)符中的 W
字母后面加上 no-
就可以了。
CocoaPods 導(dǎo)入第三方庫(kù)忽略警告
通過(guò) CocoaPods 給項(xiàng)目導(dǎo)入了一些第三方庫(kù),這些庫(kù)里面或多或少會(huì)有些警告,想消除這些警告,很簡(jiǎn)單,只需在 Podfile
中加上這一句 inhibit_all_warnings!
,所有通過(guò) CocoaPods 安裝的第三庫(kù)的警告就沒(méi)有了。