Objective-C中如何忽略warning

经常会在有些第三方框架里看到这样的代码:

1
2
3
4
5
6
7
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wgnu"
NSString *pathToBeMatched = nil;
if (method && path) {
pathToBeMatched = [[[self requestWithMethod:(method ?: @"GET") path:path parameters:nil] URL] path];
}
#pragma clang diagnostic pop

这段代码的前两句和最后一句的作用是忽略中间的代码的某种警告(warning),如果我们的代码中有些警告希望被忽略,可以使用这种方法忽略警告。

其中第二句代码的-Wgnu是警告类型,可以通过以下方法查看警告类型。

首先Command+b编译代码,然后Command+8来到报告导航栏,选中刚才的那次编译,如下图:

1

然后在左侧,找到相应的警告详情,点击左边的2按钮可以打开详情,然后就可以在最底部的警告描述里找到警告的类型,如下图:

3

以上就是OC忽略警告的方法。