Xcode 在 Command + B build項目時,會對代碼進行靜態(tài)分析檢查,可能會有些警告报辱,有些警告是”無風險“的,如實例化未使用单山,方法過期等碍现,有些警告預示著代碼存在運行”風險“,如類型不匹配米奸、方法未實現(xiàn)昼接、selector中使用了不存在的方法名、循環(huán)引用悴晰、自定義的警告等慢睡。我們應該對警告也要高度重視,通過正確處理铡溪,降低代碼運行風險漂辐。還有些代碼潔癖者,可對”無風險“警告做些忽略處理棕硫,方便查找和處理”風險“性警告髓涯。
一、通過 Xcode 配置全局性忽略警告
1饲帅、首先查看警告標識
在 Xcode 中切換到警告列表,右擊某個警告瘤泪,選擇 Reveal in Log(有時這個選項可能是置灰狀態(tài)灶泵,不能選擇,可以嘗試編譯下項目对途,或者退出 Xcode 重新來一次)
下圖紅色框中赦邻,中括號內(nèi)部的就是警告標識符(先要點擊右上角展開警告才能看到這一大堆信息)
2、在 Build Settings 中項目全局忽略警告
在項目的 Build Settings 中也可以設置忽略某種或多種類型的警告实檀,不過在這設置的影響范圍就是整個項目的了惶洲,要三思而后行按声,不然就是給自己挖坑。
填寫內(nèi)容的規(guī)則恬吕,僅僅是在第一種方法中找到的警告標識符中的 W 字母后面加上 no- 就可以了签则。
還是上面的例子,我們可以對整個 Project 忽略警告铐料,也可以僅限于某一個 Target 單獨忽略警告渐裂,在 Build Settings 中找到 Custom Compiler Flags,雙擊 Other Warning Flags(可以配置 Debug 和 Release 環(huán)境)钠惩,填入 -Wno-unused-variable
后柒凉,編譯項目,項目中所有的此類型警告都沒有了篓跛。
project → build Setting 搜索 other warning 添加 如下忽略規(guī)則
// 實例化膝捞,未使用
-Wno-unused-variable
// 過期方法
-Wno-deprecated-declarations
// self 警告
-Wno-implicit-retain-self
二、忽略 CocoaPods 第三方庫警告
通過 CocoaPods 給項目導入了一些第三方庫愧沟,這些庫里面或多或少會有些警告蔬咬,想消除這些警告,很簡單央渣,只需在 Podfile 中加上這一句 inhibit_all_warnings!计盒,通過 CocoaPods 安裝的第三庫的警告就沒有了。
pod 'WCDB.swift', :inhibit_warnings => true
三芽丹、局部代碼處理
1北启、方法棄用警告
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
//code這里插入相關的代碼
#pragma clang diagnostic pop
2.不兼容指針類型
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
//code這里插入相關的代碼
#pragma clang diagnostic pop
3.retain cycle
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-retain-cycles"
//code這里插入相關的代碼
#pragma clang diagnostic pop
4.未使用變量
#pragma clang diagnostic push
#pragma clang diagnostic ignored "--Wunused-variable"
//code這里插入相關的代碼
#pragma clang diagnostic pop
5.selector中使用了不存在的方法名(在使用反射機制通過類名創(chuàng)建類對象的時候會需要的)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
//code這里插入相關的代碼
#pragma clang diagnostic pop