iOS如何处理编译器警告⚠️

#pragma clang diagnostic push

#pragma clang diagnostic ignored "相关指令"

    // 代码

#pragma clang diagnostic pop

在上面所示代码位置添加代码,在添加相对应的指令可以去除编译时编译器的警告
常见指令如下

指令 用处
-Wincompatible-pointer-types 方法弃用警告
-Wincompatible-pointer-types 不兼容指针类型
-Wobjc-protocol-method-implementation 在类别中重写方法
-Warc-retain-cycles 循环引用
-Wunused-variable 未使用变量
-Wincomplete-implementation 没有实现已声明的方法
-Wprotocol 没有实现协议的方法
-Wimplicit-function-declaration 尚未声明的函数(通常指c函数)
-Wdeprecated-declarations 使用了不推荐使用的方法

举个例子

@implementation NSMutableArray (category)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"//去除类别中重写方法的编译器警告指令
- (void)removeLastObject {
    if (self.count) {
        [self removeObjectAtIndex:self.count - 1];
    }
}

#pragma clang diagnostic pop
@end

在NSMutableArray的类别中重写了removeLastObject方法,如果不加这个宏及相应的指令,编译时会有警告

连接中是相关指令的收集,最后更新是15年 我是这个连接
注意这个有趣的域名

拓展一下,C语言的GCC编译器也有一些警告,通常可以使用

#pragma GCC 相关指令

消除警告,链接是GCC相关的指令传送门

你可能感兴趣的:(iOS如何处理编译器警告⚠️)