Disabling Clang Compiler warnings

開發中,常常須要禁止編譯器提示某些warnings,下面是典型場景和html

1,使用CocoaPods時,引用的其餘人開發的Pods中包含warnings。ios

2,直接引用其餘人寫的源代碼時,包括經過直接導入Project、直接引用源文件中包含warnings。ui

3,本身寫的代碼中引入的warnings,好比調用performSelector: 向基類對象發送派生類中才定義的消息時。this

 

禁止warning的方法:spa

1,關閉Pods中的警告code

在Podfile中加入第4行的代碼:inhibit_all_warnings!orm

 1 # Uncomment this line to define a global platform for your project
 2 # platform :ios, '6.0'
 3 
 4 inhibit_all_warnings!
 5 
 6 target 'TestTarget' do
 7 pod 'SDWebImage', '~> 3.7.1'
 8 pod 'MBProgressHUD', '~> 0.9'
 9 pod 'TMCache', '~> 1.2.3'
10 pod 'AutoCoding', '~> 2.2.1'
11 end

保存Podfile後,打開Workspace以前,不要忘了再次運行pod install讓設置生效。htm

 

2,關閉某個文件中的警告對象

經過Xcode-Target-Build Phases菜單,找到包含警告的源文件,雙擊後,加入「-w」後保存,再次編譯,就看不到該文件中包含的全部警告了。blog

經過Clang Compiler User's Manual,能夠看到:-w:Disable all diagnostics.

若是隻想關閉某個警告,能夠使用-Wno-foo,foo是warning的名字。

BTW:若果想關閉全部警告,但只想打開特定警告,使用-Wfoo。一樣的,foo是warning的名字。

 

3,關閉某段代碼中的警告

1 #pragma clang diagnostic push
2 #pragma clang diagnostic ignored "-Wunused-variable"
3 
4 int a;
5 
6 #pragma clang diagnostic pop

第4行引入了一個常見的警告:未使用的變量,關閉該警告的方法就是在該行代碼先後加上一、二、6行樣式的代碼,重點是第2行最後的"-Wunused-variable"。

相關文章
相關標籤/搜索