Disabling Clang Compiler warnings
开发中,经常需要禁止编译器提示某些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的更多相关文章
- 关于C#你应该知道的2000件事
原文 关于C#你应该知道的2000件事 下面列出了迄今为止你应该了解的关于C#博客的2000件事的所有帖子. 帖子总数= 1,219 大会 #11 -检查IL使用程序Ildasm.exe d #179 ...
- LLVM,Clang
在使用xcode时常常会遇到这2个概念,今天总结一下. wiki中关于llvm的描述: LLVM提供了完整編譯系統的中間層,它會將中間語言(IF, Intermediate form)從編譯器取出與最 ...
- clang 编译 OC
clang -fobjc-arc -framework Foundation helloworld.m -o helloworld.out OVERVIEW: clang LLVM compiler ...
- Building clang on RedHat
http://btorpey.github.io/blog/2015/01/02/building-clang/ clang is a great compiler, with a boatload ...
- FFmpeg源代码简单分析:configure
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...
- 预处理指令#pragma
#pragma介绍 #pragma是一个预处理指令,pragma的中文意思是『编译指示』.它不是Objective-C中独有的东西(貌似在C/C++中使用比较多),最开始的设计初衷是为了保证代码在不同 ...
- 你可能不知道的iOS冷知识——#pragma
Mattt Thompson撰写. Zihan Xu翻译. 发布于2012年10月1日 #pragma 声明是彰显 Objective-C 工艺的标志之一.虽然 #pragma 最初的目的是为了使得源 ...
- Cocoa编程之IBAction和IBOutlet含义
IBAction / IBOutlet / IBOutletCollection 时间 2014-05-05 15:00:00 NSHipster原文 http://nshipster.com/i ...
- ubuntu16.04+caffe+GPU+cuda+cudnn安装教程
步骤简述: 1.安装GPU驱动(系统适配,不采取手动安装的方式) 2.安装依赖(cuda依赖库,caffe依赖) 3.安装cuda 4.安装cudnn(只是复制文件加链接,不需要编译安装的过程) 5. ...
随机推荐
- 再回首,Java温故知新(二):Java基本数据类型
Java作为一种强类型语言,意味着每一个变量都会有特定的类型,Java共有8种基本类型,其中有4种整型(byte.short.int.long).两种浮点型(float.double).1种字符型(c ...
- Java设计模式04:常用设计模式之建造者模式(创建型模式)
1. Java之建造者模式(Builder Pattern) (1)概念: 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示. [ 构建与表示分离, 同构建不同表示 ] ...
- Android真正意义上的无限轮播Banner
在android开发的时候,经常会使用到轮播图,对于这种效果,一般情况下,我们都会使用一种叫做ViewPager的来实现. 传统的实现逻辑是自定义一个View继承ViewPager,在适配器中 将co ...
- OSX10.11 CocoaPods 升级总结
本文不会讨论CocoaPods的各种使用技巧以及各种原理,只是简单记录一下在升级过程中遇到的问题,如果使用中有各种问题来欢迎交流. Podfile.loc 文件变化 前几天一个小伙更新了CocoaPo ...
- ACM vim配置
ACM现场赛时用的,比较简短,但是主要的功能都有了. 直接打开终端输入gedit ~/.vimrc 把下面的东西复制到里面就行了. filetype plugin indent on colo eve ...
- 转载:浅析C#深拷贝与浅拷贝
原文地址 :http://www.cnblogs.com/xugang/archive/2010/09/09/1822555.html 感谢博主分享! 也许会有人这样解释C# 中浅拷贝与深拷贝区别 ...
- C#中的转义字符
一些常用的转义字符: \n 换行 \b backspace,删除光标前面的一个字符 \t tab键 由多个空格组成的一个字符,具有行与行之间的对齐功能 \\ \ 如果在字符串前面加@的话: 1 ...
- Ajax 如何提交集合到mvc后台
1,前端请求如下 var apply = { CompanyName: $("[name='corpName']").val(), ContactUser: $("[na ...
- ios开发常见问题及解决办法
1 . storyboard连线问题 产生原因:将与storyboard关联的属性删除了,但是storyboard中还保持之前所关联的属性. 解决: 点击view controller 点击这排 ...
- 本地代码上传 -> Github
首先在控制台cd到你的本地项目,这里以teat为例 1.执行命令: git init 2.将项目文件添加到仓库中: git add . (可以是指定文件,将“.”转换为指定文件) 3.接下来com ...