#pargma 处理警告

2021-01-24  本文已影响0人  若水water

pragma 本质上是声明,常用的功能就是注释,尤其是给Code分段注释。它还有一个强大的功能就是处理编译器警告。在iOS 开发中,会遇到一些系统方法弃用警告⚠️,循环引用,未使用的变量之类的警告。我们可以使用#pragma 声明来防止编译器报警告。

基本格式

clang diagnostic 是#pragma的一个常用命令。

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-相关命令"
//你自己代码
#pragma clang diagnostic pop

1、未使用的变量警告⚠️

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
NSInteger variableValue; 
#pragma clang diagnostic pop

2、方法弃用警告⚠️

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma clang disgnostic pop

3、不兼容指针类型

#pragma clang diagnostic push   
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"  
   //  
#pragma clang diagnostic pop

4、循环引用⚠️

#pragma clang diagnostic push  
#pragma clang diagnostic ignored "-Warc-retain-cycles" 
   //循环引用  
#pragma clang diagnostic pop

5、内存泄漏警告⚠️

#pragma clang diagnostic push  
#pragma clang diagnostic ignored   "-Warc-performSelector-leaks"
    //内存泄漏警告
#pragma clang diagnostic pop

6、未使用default⚠️

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wcovered-switch-default"
//    switch (style) {
//        case UITableViewCellStyleDefault:
//        case UITableViewCellStyleValue1:
//        case UITableViewCellStyleValue2:
//        case UITableViewCellStyleSubtitle:
//            // ...
//        default:
//            return;
//    }
#pragma clang diagnostic pop
参考链接
  1. http://nshipster.cn/pragma/
  2. http://nshipster.com/clang-diagnostics/
  3. http://fuckingclangwarnings.com/
上一篇下一篇

猜你喜欢

热点阅读