Xcode中 cmd+B 之后总会出现各种各样的警告,对于一个对代码有洁癖的人,这种情况很难忍,接下来我们用些特殊手段强制消除这些警告
一、忽略源文件中的警告
使用编译器宏来操作
#pragma clang diagnostic push #pragma clang diagnostic ignored "警告名称" // 被夹在这中间的代码针对于此警告都会忽视不会显示出来 //常见警告的名称 //1, 声明变量未使用 "-Wunused-variable" //2, 方法定义未实现 "-Wincomplete-implementation" //3, 未声明的选择器 "-Wundeclared-selector" //4, 参数格式不匹配 "-Wformat" //5, 废弃掉的方法 "-Wdeprecated-declarations" //6, 不会执行的代码 "-Wunreachable-code" #pragma clang diagnostic pop
例:
#pragma clang diagnostic push //收集当前的警告 //忽略在arc 环境下performSelector产生的 leaks 的警告 #pragma clang diagnostic ignored "-Warc-performSelector-leaks" // 包含 performSelector 的语句 #pragma clang diagnostic pop //弹出所有的警告
当然,也可以在pch等具有大范围作用域的头文件中包含: 
#pragma clang diagnostic ignored "警告名称"
如果剔除了push与pop 则后面所有的代码都具有强制消除警告作用
查找某一种警告名称的方法:
打开一个工程,编译项目(不编译Reveal in Log是灰色的),切换左侧导航区域>>issue navigator,下面[]里面的字符串就是该警告的名称
二、忽略工程中的警告
在项目的 Build Settings
中也可以设置忽略某种或多种类型的警告,不过在这设置的影响范围就是整个项目的了,要三思而后行,不然就是给自己挖坑
还是上面的例子,在 Build Settings
中找到 Custom Compiler Flags
,双击 Other Warning Flags
(可以配置 Debug
和 Release
环境),填入 -Wno-unused-variable
完成后,编译项目,项目中所有的此类型警告都没有了。Build Settings 中项目全局忽略警告这里所填写的内容规则,仅仅是在第一种方法中找到的警告标识符中的 W
字母后面加上 no-
就可以了
三、忽略cocoapod项目中的警告
使用cocoapod引入的第三方,如果第三方库中有警告,可以在podfile文件中增加一句 inhibit_all_warnings!
四、忽略.md/.mdown/.h类型警告
将以上文件从Compile Sources中删除。路径TARGETS > Build Phases > Compile Sources 选中该类型文件删除
参考资料(戳这里):