消除 iOS 代码中的警告
在iOS开发过程中,我们可能会碰到一些警告,例如:系统弃用方法,没有实现的selector等一些警告。对于有强迫症的程序猿来说,十分不能忍受,那么我们今天就来解决它吧!
- 基本语法
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-相关命令"
// 要消除警告的代码
#pragma clang diagnostic pop
常见的几种情形
- 未实现某个方法
-Wundeclared-selector
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
// 要消除警告的代码
YYDog *dog = [[YYDog alloc] init];
[dog performSelector:@selector(eat)];
#pragma clang diagnostic pop
- performSelector
-Warc-performSelector-leaks
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
// 要消除警告的代码
#pragma clang diagnostic pop
- 方法弃用警告
-Wdeprecated-declarations
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[XX setDeviceIdentifier:[[UIDevice currentDevice] uniqueIdentifier]];
#pragma clang diagnostic pop
- 不兼容指针类型
-Wincompatible-pointer-types
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#pragma clang diagnostic pop
- 循环引用
-Warc-retain-cycles
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-retain-cycles"
self.completionBlock = ^ {
...
};
#pragma clang diagnostic pop
- 未使用变量
-Wunused-variable
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-variable" int a; #pragma clang diagnostic pop