每次在使用performSelector:方法的时候系统都会给个警告,如下图
那么如何关闭这样的警告呢?
很简单,只需要添加以下代码即可让警告消失
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
//code这里插入相关的代码
#pragma clang diagnostic pop
“-Warc-performSelector-leaks” 是警告类型。
#pragma clang diagnostic ignored后面只能跟一个忽略警告类型。
如果需要同时忽略多种警告(如下图)
只需要这样写:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
#pragma clang diagnostic ignored "-Wint-conversion"
NSInteger type = [aspectInfo.instance performSelector:NSSelectorFromString(@"searchType")];
#pragma clang diagnostic pop
那么问题又来了,我怎么知道警告是什么类型的呢?
其实这些警告不需要我们记忆,Xcode会告诉我们。
如何让Xcode告诉我们呢?
首先我们右击警告标识,会出现Reveal in Issue Navigator,如下图
点击这个Reveal in Issue Navigator,Xcode会在Issue Navigator定位到你当前选中的issue。然后我们右击在Issue Navigator里定位到的那一条警告,右击,会出现Reveal in Log,如下图
我们选中这个Reveal in Log点击,则会显示
喜大普奔~~~~
然而,有时候你会发现:
看到这个442个⚠️,此时此刻
那么我们该如何简单快捷的关闭大量的警告呢?
1、 我们可以关闭某一个指定文件的某种指定类型的警告。
我们拿具体项目来说,如下图每个地方报了3个警告:
其实关闭某个指定文件的某种类型的警告很简单,就如同我们以前给某一个文件添加 ARC支持或者不支持的时候那样 添加 忽略/显示 某种类型警告。像这样:
添加完成再编译,原来-Wint-conversion类型的警告就没有了,如下图
ps:警告类型是 “-Wint-conversion”,那么忽略就是 “-Wno-int-conversion”
2、我们可以让编译器忽略整个工程某种指定类型的警告。
工程target –> Build Settings –> Other Warning Flags,如下图
添加完成后编译,整个target的指定类型的警告就没了。