問(wèn)題描述:
在我們的項(xiàng)目中,因?yàn)榇罅康氖褂玫谌綆?kù),經(jīng)常會(huì)出現(xiàn)各種三方庫(kù)闪幽,以及我們自己再敲代碼時(shí)候調(diào)用系統(tǒng)方法卻沒(méi)有實(shí)現(xiàn)到時(shí)的各種各樣的黃色警告料皇。作為一個(gè)有追求的程序員谓松,不僅僅是為了實(shí)現(xiàn)功能而實(shí)現(xiàn)功能星压。如何去掉這些煩人的黃色警告呢?
環(huán)信easyUI中的黃色警告
軟件環(huán)境:
Xcode Version 8.2.1 (8C1002)
如何查看警告的類型
在警告窗口,某個(gè)警告上,我們右擊,顯示出右鍵菜單,選擇其中的Reveal in Log
展示
之后就會(huì)在右側(cè)展示出警告類型
警告類型
注意:如果需要關(guān)閉警告需要將 -W 換位-Wno-
1.關(guān)閉使用cocopods導(dǎo)入的第三方庫(kù)的黃色警告
去掉cocopods中導(dǎo)入三方庫(kù)的黃色警告比較簡(jiǎn)單鬼譬,只需要一行代碼 inhibit_all_warnings!
,如鐘使用的是cocopods的客戶端 cocoapods
2.關(guān)閉整個(gè)工程中某個(gè)類型的警告
Xcode為我們提供了方法娜膘,只需要簡(jiǎn)單的配置即可。
Target --> BuildSetting --> other warnning flag
在其中添加-Wno-shorten-64-to-32
即可以去掉整個(gè)工程中的 Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'int32_t' (aka 'int’)
警告
3.關(guān)閉指定.m文件中的黃色警告
同樣优质,Xcode同樣給我們提供了配置方法竣贪,關(guān)閉指定文件中的某種類型的警告很簡(jiǎn)單。
TARGETS -- > Build Phases --->Compile Sources
中雙擊需要關(guān)閉警告的.m文件巩螃,在其中添加添加關(guān)閉指定類型的代碼即可.
關(guān)閉指定文件的警告
4.關(guān)閉某個(gè)文件中的某些警告
使用編譯器提供的宏來(lái)操作
pragma clang diagnostic push#pragma clang diagnostic ignored "-相關(guān)命令" //需要關(guān)閉警告的代碼#pragma clang diagnostic pop
下面給出一些關(guān)閉常見(jiàn)警告的示例
1.方法棄用警告#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" [TestFlight setDeviceIdentifier:[[UIDevice currentDevice] uniqueIdentifier]]; #pragma clang diagnostic pop
2.不兼容指針類型#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wincompatible-pointer-types" // #pragma clang diagnostic pop
3.循環(huán)引用#pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-retain-cycles" self.completionBlock = ^ { ... }; #pragma clang diagnostic pop
4.未使用變量#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-variable" int a; #pragma clang diagnostic pop
最后
上面講到的幾種方法演怎,各位讀者根據(jù)不同的應(yīng)用場(chǎng)景自行選擇使用。其實(shí)對(duì)于自己寫的代碼最直接同時(shí)最安全方式就是避乏,定位到自己報(bào)警告的位置爷耀,修改為不警告。最后的最后拍皮,祝各位讀者:** No Bug歹叮,No Warnning!**