代码中的警告有时候有助于一些问题定位,但是随着时间一长,一些无法解决的警告会越来越多,这些警告看着确实头疼。对于一个有洁癖的技术来说,一定要消除它们。
消除方法
局部消除警告的方法
#pragma clang diagnostic push
#pragma clang diagnostic ignored "警告名称"
// 要消息的代码块
// 被夹在这中间的代码针对于此警告都会无视并且不显示出来
#pragma clang diagnostic pop
全局消息警告的方法
在项目的pch
文件中.pch
#pragma clang diagnostic ignored "警告名称"
关闭某个文件的警告
关闭某个源文件里的某种警告,在target-> Build Phases->Compile Source,给指定的源文件添加编译选项,如下图
关闭整个工程的相关警告
设置工程的警告,如下图
关闭cocoPods
第三方库警告
如果想关闭第一个cocoPods引入的第三方库引起的警告,可以找到Pod对应的target在编译参数中添加 -w
。注意,是小写-w, 大写-W,则是显示所有警告
xcode取得警告名称的方法
1.在某一个警告处,右键, reveal in log
2.[-W
]开头的值
常用的警告名称
#pragma clang diagnostic ignored "-Wunused-variable"
未使用的变量#pragma clang diagnostic ignored "-W#warnings"
通过#warning
主动添加的警告#pragma clang diagnostic ignored "-Wformat"
字符串格式化警告#pragma clang diagnostic ignored "-Wdeprecated-declarations"
方法弃用告警#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
不兼容指针类型#pragma clang diagnostic ignored "-Warc-retain-cycles"
retain cycle
更多请查阅
更多内容,请查阅
http://clang.llvm.org/docs/UsersManual.html#diagnostics_pragmas
http://nshipster.com/pragma/
http://www.cocoachina.com/applenews/devnews/2013/0731/6707.html