在开发过程中,我们编译工程的时候难免会报一些警告,虽然Xcode能编译通过,但是对于强迫症的我来说,是不能容忍的.因此,在此我写下我的解决之道.
1.系统宏解决
有些时候我们用的方法deprecated,但是为了兼容就只能用,因此对于这种特定的警告我一般用系统提供的宏来解决:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
//将编译器提示-Wdeprecated-declarations警告的代码放在这里即可
#pragma clang diagnostic pop
其他类型的警告同理,只需修改ignored后面的警告类型就可以了.
2.文件解决
系统宏固然好用,但是对于我们引入的第三方库就有点麻烦了,因为第三方库会不定时更新,那么一旦更新了三方库,我们去除警告的宏语句就被覆盖了.(因此大家写自己三方库的时候一定要注意警告问题哦O(∩_∩)O),针对这个问题解决方法:
- 进入工程的Build Phases下面找到Compile Sources点开之后我们编译的所有文件都在这呢.
- 找到你要去除警告的那个文件,双击这个文件,Xcode会弹出一个框,然后你将你想要去除的警告类型放在里面就大功告成啦!!!
3.全工程解决
文件解决固然好,但是又有个问题了,太多文件报一种错误咋办啊? 总不能一个一个的改吧,哈哈,也有方法:
- 找到工程的Build Settings,然后找到里面的Other Warning Flags这个选项
- 然后在后面添加上你要忽略的警告类型就可以了,这里还可以针对Debug和Release环境分别设置呢.
这下编译工程看看,是不是舒心了好多,赶紧做吧,我去吃点治强迫症的药,药不能停😂
4.如何查看警告类型
知道如何去除了,但是不知道警告类型可不行.我们编译的时候在错误警告提示面板上,右击这个警告,然后点击Reveal in Log,就能看到警告的详细信息了,里面就有警告类型啦.
5.结尾总结
去除警告固然舒心,但是不要去除所有的警告,警告也应该是我们关注的一部分,我认为对待警告和对待错误的态度应该一致才行.