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
#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
拓展地址

Which Clang Warning Is Generating This Message?

上一篇下一篇

猜你喜欢

热点阅读