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
网友评论