注意:此文乃是本人阅读多个博客文章后,记下的个人认为重点的地方。

  参考文章:

    参考1   参考2

  • #Pragma mark - 用于分离类中的不同功能的方法。(例如,一个 viewController 一般需要这样划分)
#pragma mark - life cycle
- (void)dealloc {
// [super dealloc];
} - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
} - (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
} - (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
} #pragma mark - UIXXXXDelegate #pragma mark - CustomDelegate #pragma mark - event response #pragma mark - private methods #pragma mark - getters and setters

  

  • 全局忽略 performSelect
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"

  

  • 局部忽略 performSelect
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks" [myObj performSelector:mySelector withObject:name]; #pragma clang diagnostic pop

  

  • 设置忽略不使用变量的警告 #pragma unused
- (void)giveMeFive
{
NSString *foo;
#pragma unused (foo) return 5;
}

  

  • 明确编译错误或者警告 (#error, #Warning 用于提醒别人或者自己代码尚有缺陷的时候很管用)
- (NSInteger)divide:(NSInteger)dividend by:(NSInteger)divisor
{
#error Whoa, buddy, you need to check for zero here!
return (dividend / divisor);
}

  

- (float)divide:(float)dividend by:(float)divisor
{
#warning Dude, don't compare floating point numbers like this!
if (divisor != 0.0) {
return (dividend / divisor);
}
else {
return NAN;
}
}
  • 设置忽略 Depracated Method 的警告
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
// call deprecated method without warning #pragma clang diagnostic pop

  

  

关于 Pragma 的使用总结的更多相关文章

  1. #pragma once与#ifndef #define ...#endif的区别

    1. #pragma once用来防止某个头文件被多次include: #ifndef,#define,#endif用来防止某个宏被多次定义.   2. #pragma once是编译相关,就是说这个 ...

  2. 预处理指令#pragma

    #pragma介绍 #pragma是一个预处理指令,pragma的中文意思是『编译指示』.它不是Objective-C中独有的东西(貌似在C/C++中使用比较多),最开始的设计初衷是为了保证代码在不同 ...

  3. IAR #pragma vector 中断入口地址

    在IAR编译器里用关键字来__interrupt来定义一个中断函数.用#pragma vector来提供中断函数的入口地址. #pragma vector = 0x12    //定时器0溢出中断入口 ...

  4. #pragma pack(push,1)与#pragma pack(1)的区别

    这是给编译器用的参数设置,有关结构体字节对齐方式设置, #pragma pack是指定数据在内存中的对齐方式. #pragma pack (n)             作用:C编译器将按照n个字节对 ...

  5. 你可能不知道的iOS冷知识——#pragma

    Mattt Thompson撰写. Zihan Xu翻译. 发布于2012年10月1日 #pragma 声明是彰显 Objective-C 工艺的标志之一.虽然 #pragma 最初的目的是为了使得源 ...

  6. pragma

    在所有的预处理指令中,#pragma指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个 编译器给出了一个方法,在保持与C和C++语言完全兼容的 ...

  7. 关于#pragma once和#ifndefine组合的区别

    最近在看duilib代码,发现头文件既有#pragma once 又有 #ifndefine...#define,忽然就觉得有点不解,因为据我所知这两者都是防止头文件二次包含的. 经过下面两位的解释后 ...

  8. Pragma如何分组

    Pragma Pragma Mark #pragma mark - 是一个在类内部组织代码并且帮助你分组方法实现的好办法. 我们建议使用 #pragma mark - 来分离: 不同功能组的方法 pr ...

  9. 【C语言】pragma

    ① #pragma comment (lib, "libgsl.a") 这是告诉编译器在编译形成的.obj文件和.exe文件中加一条信息,使得 链接器在链接库的时候要去找libgs ...

随机推荐

  1. Angular2 管道

    1. 说明 管道用来转换模板显示的内容,应用程序中经常出现获取数据,转换数据,显示数据的逻辑.管道就是用来在转换数据阶段起作用的.主要存在两种类型的管道,pure pipe和impure pipe 2 ...

  2. yii 常用的多表查询

    return $this->model()->getDbConnection()->createCommand() ->select("t.type,t.title, ...

  3. 与你相遇好幸运,服务器node环境安装

    >服务器更改root密码 sudo passwd root >服务器ubuntu安装ssh apt-get install openssh-server >服务器开启root用户密码 ...

  4. Ubuntu防火墙设置

    转载自:http://baisongfly.blog.163.com/blog/static/30135117200923005956159/ 1.安装 sudo apt-get install uf ...

  5. 【Java EE 学习 48】【Hibernate学习第五天】【抓取策略】【二级缓存】【HQL】

    一.抓取策略. 1.hibernate中提供了三种抓取策略. (1)连接抓取(Join Fetch):这种抓取方式是默认的抓取方式.使用这种抓取方式hibernate会在select中内连接的方式获取 ...

  6. [BI项目记]-搭建代码管理环境之创建团队项目

    此篇主要介绍如何基于TFS环境创建团队项目来进行项目代码的版本管理工作,这一系列将侧重于BI项目,当然对于其它项目也同样适用. 在TFS里开始一个项目,我们首先需要创建一个团队项目. 在Team Ex ...

  7. [译]:Orchard入门——部件管理

    原文链接:Managing Widgets 在Orchard中,部件是可以加入到当前当前主题任何位置或区域(如侧栏sidebar或底部区域footer)的UI块(如:HTML)或代码部分(如:内容部分 ...

  8. 在ionic这个框架下(Angular JS),对URL进行重写,过滤掉URL中的#号

    此时URL的改变已经完全不受后台代码控制了,因此我们要在前端的ionic这个框架和IIS中进行修改调控. 其实IIS只是host了整个站点,具体的URL跳转都是由前端来控制的. 1):那么前端要加上一 ...

  9. 函数图象(N=x+y*i)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  10. Android-- ImageLoader-- UIL doesn't support scheme(protocol) by default [pg].

    在ImageLoader加载图片是, 地址是容易出错的,特别是本地图片: String imageUri = "http://site.com/image.png"; // fro ...