美文网首页selector
#pragma clang diagnostic

#pragma clang diagnostic

作者: 小DB | 来源:发表于2017-08-29 19:34 被阅读30次

作为预处理指令,#pragma 在编译时进行计算。但它并不像如 #ifdef…#endif 之类的宏,#pragma 的使用方式不会改变你的应用运行时的行为。相反的,#pragma 声明主要由 Xcode 用来完成两个主要任务:整理代码和防止编译器警告。

编译器不显示相应的警告

1、方法启用告警
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
//可能会报警的代码
#pragma clang diagnostic pop

2.不兼容指针类型
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
//可能会报警的代码
#pragma clang diagnostic pop

3.retain cycle
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-retain-cycles"
//可能会报警的代码
#pragma clang diagnostic pop

4.未使用变量
#pragma clang diagnostic push
#pragma clang diagnostic ignored "--Wunused-variable"
//可能会报警的代码
#pragma clang diagnostic pop

5.selector中使用了不存在的方法名(在使用反射机制通过类名创建类对象的时候会需要的)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
//可能会报警的代码
#pragma clang diagnostic pop

6.整型常量不在枚举范围内
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wassign-enum"
//code这里插入相关的代码
#pragma clang diagnostic pop

7.忽略参数非空检查
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnonnull"
//code这里插入相关的代码
#pragma clang diagnostic pop

相关文章

网友评论

    本文标题:#pragma clang diagnostic

    本文链接:https://www.haomeiwen.com/subject/msdadxtx.html