clang diagnostic的简单使用
2018-03-21 本文已影响10人
冰land
在iOS开发中,我们难免会遇到使用废弃的方法、变量没有使用、未使用default等情况,这时候会产生对应的警告⚠️。对于有代码洁癖的同学,会感觉非常不爽,想把警告消除掉,这时候就可以使用clang diagnostic来消除掉这些警告了。
使用格式大致如下:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-相关命令"
//需要操作的代码
#pragma clang diagnostic pop
下面列举几个常用的例子:
- 忽略弃用的警告⚠️
//方法弃用告警
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
UIAlertView *alertViewTmp = [[UIAlertView alloc]initWithTitle:@"" message:@"" delegate:nil cancelButtonTitle:@"" otherButtonTitles:@"", nil];
[alertViewTmp show];
#pragma clang diagnostic pop
- 忽略不兼容指针类型⚠️
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
YJLaunchAnimationViewController *vc = [[UIViewController alloc] init];
#pragma clang diagnostic pop
- 循环引用⚠️
break the retain cycle.
#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
- 未使用default ⚠️
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wcovered-switch-default"
// switch (style) {
// case UITableViewCellStyleDefault:
// case UITableViewCellStyleValue1:
// case UITableViewCellStyleValue2:
// case UITableViewCellStyleSubtitle:
// // ...
// default:
// return;
// }
#pragma clang diagnostic pop