在咱們的項目中,由於大量的使用第三方庫,常常會出現各類三方庫,以及咱們本身再敲代碼時候調用系統方法卻沒有實現到時的各類各樣的黃色警告。做爲一個有追求的程序員,不單單是爲了實現功能而實現功能。如何去掉這些煩人的黃色警告呢?
javascript
Xcode Version 8.2.1 (8C1002)java
在警告窗口,某個警告上,咱們右擊,顯示出右鍵菜單,選擇其中的Reveal in Log
程序員
以後就會在右側展現出警告類型
安全
注意:若是須要關閉警告須要將 -W 換位-Wno-ui
去掉cocopods中導入三方庫的黃色警告比較簡單,只須要一行代碼 inhibit_all_warnings!
,如鍾使用的是cocopods的客戶端 cocoapods
spa
Xcode爲咱們提供了方法,只須要簡單的配置便可。3d
Target --> BuildSetting --> other warnning flag
在其中添加-Wno-shorten-64-to-32
便可以去掉整個工程中的 Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'int32_t' (aka 'int’)
警告指針
一樣,Xcode一樣給咱們提供了配置方法,關閉指定文件中的某種類型的警告很簡單。code
TARGETS -- > Build Phases --->Compile Sources
中雙擊須要關閉警告的.m文件,在其中添加添加關閉指定類型的代碼便可.
cdn
使用編譯器提供的宏來操做
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-相關命令"
//須要關閉警告的代碼
#pragma clang diagnostic pop複製代碼
下面給出一些關閉常見警告的示例
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[TestFlight setDeviceIdentifier:[[UIDevice currentDevice] uniqueIdentifier]];
#pragma clang diagnostic pop複製代碼
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
//
#pragma clang diagnostic pop複製代碼
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-retain-cycles"
self.completionBlock = ^ {
...
};
#pragma clang diagnostic pop複製代碼
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
int a;
#pragma clang diagnostic pop複製代碼
上面講到的幾種方法,各位讀者根據不一樣的應用場景自行選擇使用。
其實對於本身寫的代碼最直接同時最安全方式就是,定位到本身報警告的位置,修改成不警告。
最後的最後,祝各位讀者: No Bug,No Warnning!