pragma 聲明是彰顯 Objective-C 工藝的標(biāo)志之一。雖然 #pragma 最初的目的是為了使得源代碼在不同的編譯器下兼容的,但精明的Xcode編碼器將 #pragma 使用到了極致。
在現(xiàn)在的背景下,#pragma 避開了注釋和代碼之間的界限。作為預(yù)處理指令,#pragma 在編譯時進(jìn)行計算。但它并不像如 #ifdef...#endif 之類的宏,#pragma 的使用方式不會改變你的應(yīng)用運行時的行為。
pragma clang diagnostic ignored 防止編譯器警告。
防止編譯器彈出方法棄用的方法
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
XXXXXXXXX
#pragma clang diagnostic pop
// completionBlock在AFURLConnectionOperation中被手動的設(shè)置為nil來打破保留周期。
#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
具體命令
命令