忽略警告宏定义

如果selector是在运行时才确定的,performSelector时,若先把selector保存起来,等到某事件发生后再调用,相当于在动态绑定之上再使用动态绑定,不过这是编译器不知道要执行的selector是什么,因为这必须到了运行时才能欧确定,使用这种特性的代价是,如果在ARC下编译代码,编译器会发生如下的警告:

warning:performSelector may cause a leak because its selector is unknown [-Warc-performSelector-leak]

使用如下方法忽略警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored “-Warc-performSelector-leaks"
/////
#pragma clang diagnostic pop

方法弃用警告

"-Wincompatible-pointer-types"

不兼容指针类型

"-Wincompatible-pointer-types"

循环引用

#pragma clang diagnostic push  
#pragma clang diagnostic ignored "-Warc-retain-cycles" 
    self.completionBlock = ^ {  
        ...  
    };  
#pragma clang diagnostic pop

未使用变量

#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

你可能感兴趣的:(忽略警告宏定义)