pragma 声明是彰显 Objective-C 工艺的标志之一。虽然 #pragma 最初的目的是为了使得源代码在不同的编译器下兼容的,但精明的Xcode编码器将 #pragma 使用到了极致。
在现在的背景下,#pragma 避开了注释和代码之间的界限。作为预处理指令,#pragma 在编译时进行计算。但它并不像如 #ifdef...#endif 之类的宏,#pragma 的使用方式不会改变你的应用运行时的行为。
pragma clang diagnostic ignored 防止编译器警告。
防止编译器弹出方法弃用的方法
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
XXXXXXXXX
#pragma clang diagnostic pop
// completionBlock在AFURLConnectionOperation中被手动的设置为nil来打破保留周期。
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-retain-cycles"
self.completionBlock = ^ {
...
};
#pragma clang diagnostic pop
未使用变量
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
int a;
#pragma clang diagnostic pop
具体命令
命令