Xcode中 cmd+B 之后總會出現各種各樣的警告,對於一個對代碼有潔癖的人,這種情況很難忍,接下來我們用些特殊手段強制消除這些警告
一、忽略源文件中的警告
使用編譯器宏來操作
#pragma clang diagnostic push #pragma clang diagnostic ignored "警告名稱" // 被夾在這中間的代碼針對於此警告都會忽視不會顯示出來 //常見警告的名稱 //1, 聲明變量未使用 "-Wunused-variable" //2, 方法定義未實現 "-Wincomplete-implementation" //3, 未聲明的選擇器 "-Wundeclared-selector" //4, 參數格式不匹配 "-Wformat" //5, 廢棄掉的方法 "-Wdeprecated-declarations" //6, 不會執行的代碼 "-Wunreachable-code" #pragma clang diagnostic pop
例:
#pragma clang diagnostic push //收集當前的警告 //忽略在arc 環境下performSelector產生的 leaks 的警告 #pragma clang diagnostic ignored "-Warc-performSelector-leaks" // 包含 performSelector 的語句 #pragma clang diagnostic pop //彈出所有的警告
當然,也可以在pch等具有大范圍作用域的頭文件中包含: 
#pragma clang diagnostic ignored "警告名稱"
如果剔除了push與pop 則后面所有的代碼都具有強制消除警告作用
查找某一種警告名稱的方法:
打開一個工程,編譯項目(不編譯Reveal in Log是灰色的),切換左側導航區域>>issue navigator,下面[]里面的字符串就是該警告的名稱
二、忽略工程中的警告
在項目的 Build Settings
中也可以設置忽略某種或多種類型的警告,不過在這設置的影響范圍就是整個項目的了,要三思而后行,不然就是給自己挖坑
還是上面的例子,在 Build Settings
中找到 Custom Compiler Flags
,雙擊 Other Warning Flags
(可以配置 Debug
和 Release
環境),填入 -Wno-unused-variable
完成后,編譯項目,項目中所有的此類型警告都沒有了。Build Settings 中項目全局忽略警告這里所填寫的內容規則,僅僅是在第一種方法中找到的警告標識符中的 W
字母后面加上 no-
就可以了

三、忽略cocoapod項目中的警告
使用cocoapod引入的第三方,如果第三方庫中有警告,可以在podfile文件中增加一句 inhibit_all_warnings!
四、忽略.md/.mdown/.h類型警告
將以上文件從Compile Sources中刪除。路徑TARGETS > Build Phases > Compile Sources 選中該類型文件刪除
參考資料(戳這里):