IOS忽略警告

关于xcode的警告分以下几种:

1、开发过程中主动加的 #warning 用来给自己或小伙伴的提醒

2、我们写代码过程中,有问题的代码或确实是没问题的代码

3、第三方框架的警告,很多的三方库都会自带很多编译器警告,而这些代码确实是没有问题的,如果我们改动三方框架的代码,用cocoapods管理三方库,哪天更新三方库的话,这些警告又会出现了

我们特意加的警告和开发中我们自己写的代码出现的警告对我们来说是有意义的,而一些确定没问题代码出现的警告往往会对前边有用的警告造成混淆,所以为了突出这些有用的警告我们必须想办法忽略一些没用的警告,这样代码看上去也舒服一些。我们可用的方法有很多:

1、通过Clang命令 2、通过podfile文件3、通过对工程的build setting 的 other warning flags 4、通过build phases的compile sources 5、通过操作pch等等

下面具体来聊一聊如何用不同的方法忽略警告

1、忽略单个警告:

Clang提供了一个方便的方法来解决这一切,使用#pragma clang diagnostic push/pop,你可以告诉编译器仅仅为某一特定部分的代码(最初的诊断设置在最后的pop被恢复)来忽视特定警告。例如xmpp中的警告:

#pragma clang diagnostic push

#pragma clang diagnostic ignored "-相关命令"

//需要忽略警告的代码

#pragma clang diagnostic pop

关键的是相关命令怎么写,不同原因引起的警告,其命令肯定不同,这个命令不用记,xcode在给出这个警告的时候,已经把这个命令告诉我们了:

例如我们要改xmpp框架下XMPPStream下第289行的代码的警告:

command + B =》xcode左侧导航栏上边最右侧按钮 =》点第一个叹号 =》 搜索xmppstream =》点击查看此文件警告详情

详情页出现了所有xmppstream文件的警告,找到289行的警告,这下clang的命令行出来了

对XMPPStream文件下289行的命令处理后:

289行警告消失。

还有一种快速查看警告细节的方式(有时候点会没反应):右键 -》Reveal in Log 会跳到相应的警告详细处

2、忽略某种类型的警告:

方法一:如果工程中用了xmpp,xmpp框架有很多个此种类型的警告,一个一个改,复制粘贴也要好长时间,接下来介绍一种忽略同种警告的方法:

Build Settings 下找到 Other Warning Flags 填写要忽略的警告命令(查找命令的方法上边已经提过了,都是,此处的命令与查到的命令有些微差别,例如-Wimplicit-retain-self要写成-Wno-implicit-retain-self;-Wunused-variable 写成-Wno-unused-variable;-Wundeclared-selector写成-Wno-undeclared-selector)

做完以上操作,工程中警告少了很多。

方法二:与上述2效果相同的做法是在pch文件最上边添加 #pragma clang diagnostic ignored "-Wimplicit-retain-self",注意不用写对应的push/pop代码,注意一定要写在最上边,最好是第一行。剔除了push与pop则后面所有的代码都具有强制消除警告作用

3、忽略某个文件的警告:

  在build phases -》compile sources 中找到相应文件  把此文件中想要忽略的警告类型的命令写上即可

4、去除整个工程的所有警告:

如果工程用到cocoapopods管理第三方,则可以在podfile文件里platform :ios,'6.0'  的下一行添加  inhibit_all_warnings!命令(加完之后依旧有很多警告,用其它方法处理余下的警告)

猜你喜欢

转载自blog.csdn.net/denggun12345/article/details/83586790