#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编译指令相关的知识,网上也有很多文章介绍各个指令的用法,但是在网上搜到的对#prag...
    小猪啊呜阅读 7,143评论 1 8
  • 接上一篇#pragma编译指令大全(上) inline_depth 语法 作用 指定函数的内敛深度,超过深度n的内...
    小猪啊呜阅读 9,510评论 2 5
  • #pragma声明主要由Xcode用来完成两个主要任务——整理代码和防止编译器警告。 整理代码 代码的整洁程度反映...
    西行客要闭关修炼阅读 463评论 0 0
  • 前面一段时间,不是在忙离职,就是趁着清明跑去放(fu)松(bai)去了,好久了都没开始真正的写一写iOS相关的...
    redihd阅读 4,761评论 1 4
  • 昨天和同事开玩笑说,上班忙,下班更忙! 最近很忙,上班忙着总部的审核,—抬头吃饭了,又一抬头下班了。感觉如机器般忙...
    JC贾阅读 238评论 3 1