美文网首页
2018-01-23 消除项目中的警告,强迫症的福音

2018-01-23 消除项目中的警告,强迫症的福音

作者: canlanrensheng | 来源:发表于2018-01-23 16:21 被阅读0次

    前言:先叨叨两句

    在项目中,通常使用了大量的第三方代码,这些代码可能很复杂,我们不敢改动他们,可是作者已经停止更新了,当sdk升级或者是编译器升级后,这些遗留的代码可能会出现许许多多的警告,那么我们有没有办法去掉这些烦人的警告,不然一个工程几百个警告,你看着怎么都不爽吧。我们怎么去掉警告呢?

    1. 最直接、最一劳永逸、最安全的方式,直接找到警告的那段代码,改为不警告。这个方式最安全。

    可是它有一个问题,就是,当我们很多文件都有这种类型的警告的时候,我们就需要改动很多很多的源码了, 对于不是我们写的源码,有可能随时会更新的,我们这种方式,显然就不太可取了。

    2. 使用编译器提供的宏来操作,这个方式在我们的工程中会大量的看到:

    #pragma clang diagnostic push

    #pragma clang diagnostic ignored"-Wdeprecated-declarations"

        //写在这个中间的代码,都不会被编译器提示-Wdeprecated-declarations类型的警告

    dispatch_queue_tcurrentQueue =dispatch_get_current_queue();

    #pragma clang diagnostic pop

    这种方式的问题,同第一个差不多,也是要修改源代码的实现的,对于第三方,我们肯定是不想改动它的,尤其是一些更新很频繁的第三方,一般警告出现后不久,作者就更新了,我们在此做这样的操作,就显得浪费了.并且在 添加arm64支持的时候,一下出现几百个某种类型的警告,改起来也是相当费时费力的啊!

    下面开始操作:

    比如项目中有这样的警告,选中要消除的警告,点击右键Reveal in  Log,查看,会看到这个页面

    重点来了,红框标记的就是要消除警告的关键所在,如果我们是要关闭某种类型的警告的话, 要将 -W换成 -Wno-  ,比如-Wunguarded-availability改成-Wno-unguarded-availability,然后复制一下-Wno-unguarded-availability

    把你copy 的-Wno-unguarded-availability粘贴到这里就行了,同样的方法,消除掉其他的警告,然后clean一下工程,重新运行

    是不是警告全没了,惊不惊喜,意不意外,作为一个优秀的程序员,警告就是错误的时代,是不是又可以装一把!

    相关文章

      网友评论

          本文标题:2018-01-23 消除项目中的警告,强迫症的福音

          本文链接:https://www.haomeiwen.com/subject/bjisaxtx.html