H1 单个警告处理
我们知道#pragma mark 是分段注释,但是它还有另外一个比较好用的功能就是警告处理
clang diagnostic 是#pragma 的一个常用命令
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-相关命令"
// 你自己的代码
#pragma clang diagnostic pop
H2 忽略performSelector警告
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[self performSelector:example.selector];
#pragma clang diagnostic pop
H2 忽略方法弃用警告
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[TestFlight setDeviceIdentifier:[[UIDevice currentDevice] uniqueIdentifier]];
#pragma clang diagnostic pop
H2 忽略循环引用警告 不过建议weakSelf
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-retain-cycles"
self.completionBlock = ^ { ... };
#pragma clang diagnostic pop
H2 忽略变量未使用
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
int a;
#pragma clang diagnostic pop
H2 不兼容指针
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
//代码
#pragma clang diagnostic pop
H1 项目单类警告处理
在使用一些老的第三方库的时候会存在一些警告,例如是类型转换等等之类的 但是我们不好处理,而且数量也很多 动辄几十上百个用上面的方法处理会很麻烦 所以可以使用下面的方法来处理全局某一类的警告
这里我用 <Unused variable> 来说明
记录下上面的那一段 <-Wunused-const-variable> 改成 <-Wno-unused-const-variable> 如下图
这样就不会再报 <Unused variable> 警告了
H1 某个文件单类警告处理