分类目录归档:错误分析

如何忽略Xcode中编译时的警告

引言:
使用pods来集成第三方框架或组件估计在大部分中项目中都会碰到,然后这会带来另外一个问题,第三方代码中会出现一些编译警告,我们该如何处理呢?
1、Unlock其文件,将bug改掉?!对于有强迫症的人来讲这个确实是太难受了,但升级后又得改一次,如果警告较多的话,这还将是一个不小的工作量;
2、使用预编译指令,使开发工具自动忽略掉其中的警告,其实这也会涉及到修改第三方代码,并且如果警告类型较多,工作量也不小;
3、有没有一行代码就能搞定的事情?!好在是有的。在pods工程的Podfile中,添加一行inhibit_all_warnings!,然后pod update一下即可,轻松搞定!

1
2
3
4
platform :ios, '8.0'
inhibit_all_warnings!
 
target 'xxxxxx' do

再编译看看,是不是警告都没有了,整个心情都不一样了!

常见的警告类别有

1
2
3
4
5
6
7
//常见警告的名称
//1, 声明变量未使用  "-Wunused-variable"
//2, 方法定义未实现  "-Wincomplete-implementation"
//3, 未声明的选择器  "-Wundeclared-selector"
//4, 参数格式不匹配  "-Wformat"
//5, 废弃掉的方法    "-Wdeprecated-declarations"
//6, 不会执行的代码  "-Wunreachable-code"

顺便再提一下,如果自己代码中的警告,有两种方式可以忽略:
第一、通过在Build Setting中设置Other Warning Flags来忽略全局的警告提示;
具体做法是在Build Setting中搜索Other Warning Flags,警告类型添加进去即可;
第二、如果要忽略部分代码的警告,可在代码中插入

1
2
3
4
#pragma clang diagnostic push
?#pragma clang diagnostic ignored "警告类别"
//这是代码
#pragma clang diagnostic pop

这三句是一组,夹在中间的代码警告会被编译器所忽略;