Xcode 忽略警告配置

Xcode 在 Command + B build項(xiàng)目時(shí),會(huì)對(duì)代碼進(jìn)行靜態(tài)分析檢查,可能會(huì)有些警告,有些警告是”無(wú)風(fēng)險(xiǎn)“的,如實(shí)例化未使用,方法過(guò)期等,有些警告預(yù)示著代碼存在運(yùn)行”風(fēng)險(xiǎn)“,如類型不匹配、方法未實(shí)現(xiàn)、selector中使用了不存在的方法名、循環(huán)引用、自定義的警告等。我們應(yīng)該對(duì)警告也要高度重視,通過(guò)正確處理,降低代碼運(yùn)行風(fēng)險(xiǎn)。還有些代碼潔癖者,可對(duì)”無(wú)風(fēng)險(xiǎn)“警告做些忽略處理,方便查找和處理”風(fēng)險(xiǎn)“性警告。

一、通過(guò) Xcode 配置全局性忽略警告

1、首先查看警告標(biāo)識(shí)

在 Xcode 中切換到警告列表,右擊某個(gè)警告,選擇 Reveal in Log(有時(shí)這個(gè)選項(xiàng)可能是置灰狀態(tài),不能選擇,可以嘗試編譯下項(xiàng)目,或者退出 Xcode 重新來(lái)一次)


image.png

下圖紅色框中,中括號(hào)內(nèi)部的就是警告標(biāo)識(shí)符(先要點(diǎn)擊右上角展開(kāi)警告才能看到這一大堆信息)


image.png

2、在 Build Settings 中項(xiàng)目全局忽略警告
在項(xiàng)目的 Build Settings 中也可以設(shè)置忽略某種或多種類型的警告,不過(guò)在這設(shè)置的影響范圍就是整個(gè)項(xiàng)目的了,要三思而后行,不然就是給自己挖坑。

填寫內(nèi)容的規(guī)則,僅僅是在第一種方法中找到的警告標(biāo)識(shí)符中的 W 字母后面加上 no- 就可以了。

image.png

Build Settings 中項(xiàng)目全局忽略警告
還是上面的例子,我們可以對(duì)整個(gè) Project 忽略警告,也可以僅限于某一個(gè) Target 單獨(dú)忽略警告,在 Build Settings 中找到 Custom Compiler Flags,雙擊 Other Warning Flags(可以配置 Debug 和 Release 環(huán)境),填入 -Wno-unused-variable 后,編譯項(xiàng)目,項(xiàng)目中所有的此類型警告都沒(méi)有了。
project → build Setting 搜索 other warning 添加 如下忽略規(guī)則

// 實(shí)例化,未使用
-Wno-unused-variable

// 過(guò)期方法
-Wno-deprecated-declarations

// self 警告
-Wno-implicit-retain-self

二、忽略 CocoaPods 第三方庫(kù)警告

通過(guò) CocoaPods 給項(xiàng)目導(dǎo)入了一些第三方庫(kù),這些庫(kù)里面或多或少會(huì)有些警告,想消除這些警告,很簡(jiǎn)單,只需在 Podfile 中加上這一句 inhibit_all_warnings!,通過(guò) CocoaPods 安裝的第三庫(kù)的警告就沒(méi)有了。

pod 'WCDB.swift', :inhibit_warnings => true

三、局部代碼處理

1、方法棄用警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
//code這里插入相關(guān)的代碼
#pragma clang diagnostic pop

2.不兼容指針類型

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
//code這里插入相關(guān)的代碼
#pragma clang diagnostic pop

3.retain cycle

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-retain-cycles"
//code這里插入相關(guān)的代碼
#pragma clang diagnostic pop

4.未使用變量

#pragma clang diagnostic push
#pragma clang diagnostic ignored "--Wunused-variable"
//code這里插入相關(guān)的代碼
#pragma clang diagnostic pop

5.selector中使用了不存在的方法名(在使用反射機(jī)制通過(guò)類名創(chuàng)建類對(duì)象的時(shí)候會(huì)需要的)

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
//code這里插入相關(guān)的代碼
#pragma clang diagnostic pop
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Xcode 在 Command + B build項(xiàng)目時(shí),會(huì)對(duì)代碼進(jìn)行靜態(tài)分析檢查,可能會(huì)有些警告,有些警告是”無(wú)...
    擇勢(shì)量投閱讀 2,996評(píng)論 0 1
  • 對(duì)于一個(gè)有強(qiáng)迫癥的我,每次 ?B Build 項(xiàng)目時(shí),發(fā)現(xiàn)一個(gè)警告都要點(diǎn)進(jìn)去修復(fù)了,然而,對(duì)于一些無(wú)關(guān)緊要的警告,...
    冷漠叻葒顏閱讀 12,289評(píng)論 4 27
  • 添加警告 方便在代碼中標(biāo)記,以及后續(xù)處理 忽略警告 1、在源代碼中忽略警告對(duì)于一些無(wú)關(guān)緊要的警告,我們可以手動(dòng)將其...
    Console_Liu閱讀 1,780評(píng)論 0 1
  • ?在iOS開(kāi)發(fā)中,我們不可避免的會(huì)遇到各種類型的警告,有些警告需要解決,但有些警告是我們知道但不是必須要解決的(比...
    __LuckyPan__閱讀 4,636評(píng)論 0 3
  • 作者:radex.io,原文鏈接,原文日期:2016-07-28譯者:ckitakishi;校對(duì):Channe;定...
    梁杰_numbbbbb閱讀 1,886評(píng)論 0 3

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