Objective-C Warnings的屏蔽
处理编译器的警告
在项目不断发展需要兼容低版本,如iOS6.0以及更低版本的时候,编译出来就会有上百个warnings,究其原因就是因为有很多低版本的方法在高版本的SDK中被deprecated,所以我们需要做的只能是屏蔽warnins,添加toDo注释,等兼容最低版本提高时再替换方法;
1、弃用方法的warnings屏蔽
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" //调用废弃的方法 #pragma clang diagnostic pop
2、指针类型不兼容warnings屏蔽
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wincompatible-pointer-types" //类型不兼容的代码段 #pragma clang diagnostic pop
3、尚未使用的变量或方法用unused标记
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-variable" //有未使用的变量或者方法 #pragma clang diagnostic pop
4、保留环问题,不过建议最好直接修改代码
the retain cycle. #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-retain-cycles" self.completionBlock = ^ { ... }; #pragma clang diagnostic pop
以上方法可以解决大部分现有项目因为废弃或者其他原因造成的warnings
如果需要更进一步了解
http://clang.llvm.org/docs/UsersManual.html#diagnostics_pragmas