在iOS开发过程中,难免会遇到一些黄色警告,这些警告大多来自于使用了废弃的API、类型匹配不当的警告和一些循环引用的警告,其中一些是自己编码过程的留下的警告,当然更多的则是使用了某些停止更新的第三方库,每当SDK升级过后,就会出现几十上百个警告,这对一个有代码洁癖的强迫症患者来讲,每次看到都犹如鲠在喉、如芒刺背。那有没有办法解决这一问题呢?答案是肯定的,下面就介绍几个消除警告的方法:
方式一:直接找到被警告的那行代码根据警告信息修改即可,这种方法最简单直接、安全高效,对于自己写的代码产生的警告还好,但大多数警告来自第三方库,其海量的代码和复杂的逻辑使我们不敢轻易去改动,那么请看下面的方法;
方式二:消除指定页面的警告。使用Clang提供的方法来解决这个问题,如下所示;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations" //双引号内为警告名称
//这里是产生警告的代码
#pragma clang diagnostic pop
我们使用#pragma clang diagnostic push/pop来消除特定的代码片段产生的警告,然而如果像这样的代码片段太多,那这种方法的工作量还是太大,那还有没有其它的办法呢?请看下面;
方式三:消除某个类型的所有警告。在项目 targets -- Build Setting 下搜索 Other Warning Flags 添加警告代码,这里的警告代码和上面方法中的警告代码有一点小区别:
-Wdeprecated-declarations —> 改为 -who-deprecated-declarations //使用了弃用方法的警告
-Wunused-variable —> 改为 -who-unused-variable //未使用变量的警告
-Warc-retain-cycles —> 改为 -who-arc-retain-cycles //循环引用的警告
具体操作请看下图:
如何找到警告代码请看下图:
虽然看到警告让人极其烦躁,但警告真的是警告,如果长期忽略,极易产生安全隐患,还望各位慎重对待!