#pragma

开门见山

pragam 声明在Xcode中主要起两个作用:整理代码和处理编译器警告

整理代码

我们经常通过 #pragam mark - 来将代码分割成逻辑区块。这将使得代码整洁,干净。同时也易于我们阅读和查找。

处理编译器警告

黄色,到处都是黄色的警告,努力消除警告。但是某个警告又没法避免,那我能不能让它不提示警告呢?这时,用来抑制编译器警告的 #pragma 就派上用场了:

它的格式是什么呢?

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-相关命令"
// 程序段
#pragma clang diagnostic pop

常见的用法

1.消除方法弃用警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
    if (self.activityIndicatorColor) {
        color = self.activityIndicatorColor;
    }
#pragma clang diagnostic pop

// 这是引用的第三方库HUD的一段代码。不用 #pragma 就会警告 activityIndicatorColor 过期。

2.消除指针类型不兼容警告

#pragma clang diagnostic push   
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"  
// 要消除警告的程序段
#pragma clang diagnostic pop

3.消除循环引用警告

#pragma clang diagnostic push  
#pragma clang diagnostic ignored "-Warc-retain-cycles" 
// 要消除警告的程序段
#pragma clang diagnostic pop

4.消除变量未使用警告

#pragma clang diagnostic push   
#pragma clang diagnostic ignored "-Wunused-variable"  
// 要消除警告的程序段
#pragma clang diagnostic pop

更多的相关命令

http://fuckingclangwarnings.com

心情

一日之计在于晨

你可能感兴趣的:(#pragma)