消除警告须谨慎,能改的还是改成符合规范的格式
消除警告有三种方式,在警告处消除,按文件消除,整个工程消除
在警告处消除
// clang 是对应的编译器,根据需要可以改成 GCC 等
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
//写在这个中间的代码,都不会被编译器提示-Wdeprecated-declarations类型的警告
// 如果同时要忽略其他类型的警告,只需要继续添加 #pragma clang diagnostic ignored 即可
dispatch_queue_tcurrentQueue =dispatch_get_current_queue();
#pragma clang diagnostic pop
详细的警告列表及原因可以查看这里
你还可以通过下面的方法获取警告关键词名称:
1.
2.
按文件消除警告
这里填的类型规则如下
-Wunused-variable —> -W-no-unused-variable
同理
-Wenum-conversion —> -W-no-enum-conversion
整个工程消除警告
方法一
方法二
消除内存泄露的警告
内存泄露的警告是由 Xcode 的分析工具发出的
#ifndef __clang_analyzer__
//含内存泄漏的代码
#endif
使用宏
#define SuppressPerformSelectorLeakWarning(code) \
do {\
_Pragma("clang diagnostic push") \
_Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"") \
code; \
_Pragma("clang diagnostic pop") \
} while(0)