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编译警告类型

Xcode警告忽略的更多相关文章

  1. 针对Xcode的警告忽略消除处理

    一.问题描述 html代码如下 <html> <head> <meta charset="utf-8"/> <title>我的网页& ...

  2. 处理Xcode 警告

    除了代码中我们手动加入的 #Waring  标示 所产生的警告,我们都应该重视.下面是一些警告的处理. 1,方法过期,或 使用新的api  替换方案 multipartFormRequestWithM ...

  3. Xcode 警告信息处理:Format string is not a string literal (potentially insecure)

    转自:http://www.oschina.net/question/54100_33881 NSObject *obj = @"A string or other object." ...

  4. iOS 消除Xcode警告

    - undeclared selector #pragma clang diagnostic push #pragma clang diagnostic ignored"-Wundeclar ...

  5. Xcode git 忽略user interface state文件

    退出xcdoe, 打开终端(Terminal),进入到你的项目目录下 在终端输入如下代码 git rm --cached *.xcuserstate git commit -m "Remov ...

  6. xcode忽略警告

    1.对整个文件使用 你的工程 -> 你的target -> Build Phases -> Compile Sources -> 搜索要忽略警告的文件名,在 Compiler ...

  7. 怎么去掉Xcode工程中的某种类型的警告

    XCode警告   问题描述  在我们的项目中,通常使用了大量的第三方代码,这些代码可能很复杂,我们不敢改动他们,可是作者已经停止更新了,当sdk升级或者是编译器升级后,这些遗留的代码可能会出现许许多 ...

  8. 去掉xcode中警告的一些经验

    1.编译时,编译警告忽略掉某些文件 只需在在文件的Compiler Flags 中加入 -w 参数,例如: 2.编译时,编译警告忽略掉某段代码 #pragma clang diagnostic pus ...

  9. 使用 .gitignore 忽略 Git 仓库中的文件

    .gitignore 在Git中,很多时候你只想将代码提交到仓库,而不是将当前文件目录下的文件全部提交到Git仓库中,例如在MacOS系统下面的.DS_Store文件,或者是Xocde的操作记录,又或 ...

随机推荐

  1. 记一次SQL xml字段关联查询

    需求: 一张表是APP表,结构如下: app_category为该游戏所属的类别ID,xml字段类型 另一张表是类别表,就ID对应名称,这就不上图了. 还有一张表是每个游戏的下载记录,结构如下: Do ...

  2. day01_虚拟机与主机之间ip配置

       虚拟机1: centos_ node1 虚拟机2:centos_node2 宿主主机虚拟机ip配置: vmnet1 来自为知笔记(Wiz)

  3. BAT小米奇虎美团迅雷携程等等各大企业校招,笔试面试题。

    类似在线测试的方式展示题目. 历年在线笔试试卷: 百度 http://www.nowcoder.com/paper/search?query=%E7%99%BE%E5%BA%A6  腾讯http:// ...

  4. free查看内存情况

    free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区. free [option]     -b:以Byte为单位显示内存使用情况:      -k:以KB为单位显 ...

  5. 实现reentrantlock和读写锁

    1 可以手动实现一个类似reentrantlock的工具,首先要维护一个state的标志,代表当前是否有线程已经使用资源.线程lock的时候, 会用cas给state加1,其他线程检测状态.另外需要维 ...

  6. Servlet处理流程分析

    ---------------siwuxie095                                 Tomcat 处理客户端请求的方式:     Tomcat 既是一个 Servlet ...

  7. 11、比对软件STAR(https://github.com/alexdobin/STAR)

    转载:https://mp.weixin.qq.com/s?__biz=MzI1MjU5MjMzNA==&mid=2247484731&idx=1&sn=b15fbee5910 ...

  8. C#中的new修饰符说明

    new修饰符主要是用来隐藏从基类继承的成员. 这句话怎么理解呢,就是说有一个类,它有一个继承类,继承类中存在和基类中一样名称的成员(属性,方法等). 对继承类中的该成员使用new修饰符时,调用时将会隐 ...

  9. hdu1058

    #include<iostream> #include<string> using namespace std; int const N = 4; int map[N] = { ...

  10. android开源项目:图片下载缓存库picasso

    picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能. picasso有如下特性: 在a ...