开发中,经常需要禁止编译器提示某些warnings,下面是典型场景和

1,使用CocoaPods时,引用的其他人开发的Pods中包含warnings。

2,直接引用其他人写的源代码时,包括通过直接导入Project、直接引用源文件中包含warnings。

3,自己写的代码中引入的warnings,比如调用performSelector: 向基类对象发送派生类中才定义的消息时。

禁止warning的方法:

1,关闭Pods中的警告

在Podfile中加入第4行的代码:inhibit_all_warnings!

 1 # Uncomment this line to define a global platform for your project
2 # platform :ios, '6.0'
3
4 inhibit_all_warnings!
5
6 target 'TestTarget' do
7 pod 'SDWebImage', '~> 3.7.1'
8 pod 'MBProgressHUD', '~> 0.9'
9 pod 'TMCache', '~> 1.2.3'
10 pod 'AutoCoding', '~> 2.2.1'
11 end

保存Podfile后,打开Workspace之前,不要忘了再次运行pod install让设置生效。

2,关闭某个文件中的警告

通过Xcode-Target-Build Phases菜单,找到包含警告的源文件,双击后,加入“-w”后保存,再次编译,就看不到该文件中包含的所有警告了。

通过Clang Compiler User's Manual,可以看到:-w:Disable all diagnostics.

如果只想关闭某个警告,可以使用-Wno-foo,foo是warning的名字。

BTW:若果想关闭所有警告,但只想打开特定警告,使用-Wfoo。同样的,foo是warning的名字。

3,关闭某段代码中的警告

 #pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable" int a; #pragma clang diagnostic pop

第4行引入了一个常见的警告:未使用的变量,关闭该警告的方法就是在该行代码前后加上1、2、6行样式的代码,重点是第2行最后的"-Wunused-variable"。

Disabling Clang Compiler warnings的更多相关文章

  1. 关于C#你应该知道的2000件事

    原文 关于C#你应该知道的2000件事 下面列出了迄今为止你应该了解的关于C#博客的2000件事的所有帖子. 帖子总数= 1,219 大会 #11 -检查IL使用程序Ildasm.exe d #179 ...

  2. LLVM,Clang

    在使用xcode时常常会遇到这2个概念,今天总结一下. wiki中关于llvm的描述: LLVM提供了完整編譯系統的中間層,它會將中間語言(IF, Intermediate form)從編譯器取出與最 ...

  3. clang 编译 OC

    clang -fobjc-arc -framework Foundation helloworld.m -o helloworld.out OVERVIEW: clang LLVM compiler ...

  4. Building clang on RedHat

    http://btorpey.github.io/blog/2015/01/02/building-clang/ clang is a great compiler, with a boatload ...

  5. FFmpeg源代码简单分析:configure

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  6. 预处理指令#pragma

    #pragma介绍 #pragma是一个预处理指令,pragma的中文意思是『编译指示』.它不是Objective-C中独有的东西(貌似在C/C++中使用比较多),最开始的设计初衷是为了保证代码在不同 ...

  7. 你可能不知道的iOS冷知识——#pragma

    Mattt Thompson撰写. Zihan Xu翻译. 发布于2012年10月1日 #pragma 声明是彰显 Objective-C 工艺的标志之一.虽然 #pragma 最初的目的是为了使得源 ...

  8. Cocoa编程之IBAction和IBOutlet含义

    IBAction / IBOutlet / IBOutletCollection 时间 2014-05-05 15:00:00  NSHipster原文  http://nshipster.com/i ...

  9. ubuntu16.04+caffe+GPU+cuda+cudnn安装教程

    步骤简述: 1.安装GPU驱动(系统适配,不采取手动安装的方式) 2.安装依赖(cuda依赖库,caffe依赖) 3.安装cuda 4.安装cudnn(只是复制文件加链接,不需要编译安装的过程) 5. ...

随机推荐

  1. 再回首,Java温故知新(二):Java基本数据类型

    Java作为一种强类型语言,意味着每一个变量都会有特定的类型,Java共有8种基本类型,其中有4种整型(byte.short.int.long).两种浮点型(float.double).1种字符型(c ...

  2. Java设计模式04:常用设计模式之建造者模式(创建型模式)

    1. Java之建造者模式(Builder Pattern) (1)概念:       将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示. [ 构建与表示分离, 同构建不同表示 ] ...

  3. Android真正意义上的无限轮播Banner

    在android开发的时候,经常会使用到轮播图,对于这种效果,一般情况下,我们都会使用一种叫做ViewPager的来实现. 传统的实现逻辑是自定义一个View继承ViewPager,在适配器中 将co ...

  4. OSX10.11 CocoaPods 升级总结

    本文不会讨论CocoaPods的各种使用技巧以及各种原理,只是简单记录一下在升级过程中遇到的问题,如果使用中有各种问题来欢迎交流. Podfile.loc 文件变化 前几天一个小伙更新了CocoaPo ...

  5. ACM vim配置

    ACM现场赛时用的,比较简短,但是主要的功能都有了. 直接打开终端输入gedit ~/.vimrc 把下面的东西复制到里面就行了. filetype plugin indent on colo eve ...

  6. 转载:浅析C#深拷贝与浅拷贝

    原文地址 :http://www.cnblogs.com/xugang/archive/2010/09/09/1822555.html   感谢博主分享! 也许会有人这样解释C# 中浅拷贝与深拷贝区别 ...

  7. C#中的转义字符

    一些常用的转义字符: \n  换行 \b  backspace,删除光标前面的一个字符 \t  tab键 由多个空格组成的一个字符,具有行与行之间的对齐功能 \\  \ 如果在字符串前面加@的话: 1 ...

  8. Ajax 如何提交集合到mvc后台

    1,前端请求如下 var apply = { CompanyName: $("[name='corpName']").val(), ContactUser: $("[na ...

  9. ios开发常见问题及解决办法

    1 . storyboard连线问题 产生原因:将与storyboard关联的属性删除了,但是storyboard中还保持之前所关联的属性. 解决: 点击view controller    点击这排 ...

  10. 本地代码上传 -> Github

    首先在控制台cd到你的本地项目,这里以teat为例 1.执行命令:  git init 2.将项目文件添加到仓库中:  git add . (可以是指定文件,将“.”转换为指定文件) 3.接下来com ...