Xcode警告忽略

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(可以配置 DebugRelease 环境),填入 -Wno-unused-variable

  完成后,编译项目,项目中所有的此类型警告都没有了。Build Settings 中项目全局忽略警告这里所填写的内容规则,仅仅是在第一种方法中找到的警告标识符中的 W 字母后面加上 no- 就可以了


 
 

三、忽略cocoapod项目中的警告

   使用cocoapod引入的第三方,如果第三方库中有警告,可以在podfile文件中增加一句  inhibit_all_warnings!

四、忽略.md/.mdown/.h类型警告

   将以上文件从Compile Sources中删除。路径TARGETS > Build Phases > Compile Sources 选中该类型文件删除

参考资料(戳这里):

>  谈谈Objective-C的警告

>  去掉Xcode中某类型的警告

>  Xcode项目忽略警告

>  部分Xcode编译警告类型

原文地址:https://www.cnblogs.com/markstray/p/5620916.html