1. PCH文件概述

  • PCH文件是一种预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里。这些预先编译好的代码可以是任何的C/C++代码--甚至可以是inline函数,只它们在整个工程中是较为稳定的,即在工程开发过程中不会经常被修改的代码。

  • 在 Xcode6.0 之前的版本中,生成的 Single View Application 工程中自动存在PCH文件,Xcode6.0 之后就去掉了pch,为了一些琐碎的头文件引用,加快了编译速度!

  • 如图为 Xcode5 的工程截图:

2. PCH文件的创建(Xcode6.0 之前的版本)

 在工程中 command + N —> iOS中的 Other —> PCH File —> Next —> Create

 PCH文件是提前编译的,所以我们要告诉工程。具体操作如下图:

 当然如果想要填写的话,可以使用 $(SRCROOT) 来获取你工程文件的路径,完整可以写为:$(SRCROOT)/PCHTest/header.pch

3. PCH文件的作用

  • 存放一些公用的宏

  • 存放一些公用的头文件,一般开发中方工具类的头文件或者分类头文件等。

  • 管理日志输出

  自定义Log: #define ZFLog(…) NSLog(__VA__ARGS__)

  宏里面的可变参数:...

  函数中的可变参数:__VA__ARGS__

  日志输出非常耗性能,一般发布的时候不需要日志文件,只有调试的时候才需要。

  在发布上线的时候,我们有两种简单的方式来消除在工程中所有的日志输出

   ① 我们可以直接注释后面的 #define ZFLog(…) // NSLog(__VA__ARGS__),就可以消除在工程中所有的日志输出

   ② 还可以通过一个宏进行条件编译,在调试阶段,xcode会自动定义一个DEBUG宏,利用这个宏,就能进行条件编译。

      #ifdef DEBUG // 调试阶段
      #define ZFLog(…) NSLog(__VA__ARGS__)
      #else // 发布阶段
      #define ZFLog(…)
      #endif

4. PCH文件使用注意事项

 在 PCH 写的有关 OC 的东西,最好放在 #ifdef __OBJC__ ,Xcode 在每个 OC 文件中都定义了这个宏,也就意味着只有 OC 中的文件才拥有这些宏,避免项目中有 C 文件的时候,报错。
 比如在c文件中,使用 #import ,就会报错,因为c文件不能识别 #import , 只有 OC 文件才能识别。在 PCH 中的东西能被项目中的所有文件共享, C 文件共享 #import 就报错。
#ifdef __OBJC__ // OC文件的正确写法
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif #import "ZFTool.h" // 写在这里可能报错,所以不要写在这里

【原】iOS学习之PCH文件的更多相关文章

  1. iOS开发中.pch 文件的使用及其相关工程设置

    .pch文件 也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问.是一个预编译文件. 首先说一下pch的作用: 1.存放一些全局的宏(整个项目中都用得上的宏) 2.用来包含一些全部 ...

  2. iOS开发之pch文件

    项目的Supporting files文件夹下面有个“工程名-Prefix.pch”文件,也是一个头文件 pch头文件的内容能被项目中的其他所有源文件共享和访问 一般在pch文件中定义一些全局的宏 在 ...

  3. iOS开发之.pch文件初识

    pch全称是“precompiled header”,即预编译头文件,自Xcode6诞生之日起,便在Supporting Files文件下消失多年.说起苹果对pch的爱恨情仇,其分析pch的作用便不言 ...

  4. 李洪强iOS开发之-PCH文件的配置

    pch 可以用来存储共享信息,比如设备屏幕的宽度,高度.版本号等等 公用信息 Xcode 老版本会自动为我们创建pch文件,新版本开始不自动创建了,如果需要使用可以自己手动创建 创建完成后可以在里面定 ...

  5. iOS开发添加pch文件

    首先说一下pch的作用: 1.存放一些全局的宏(整个项目中都用得上的宏) 2.用来包含一些全部的头文件(整个项目中都用得上的头文件) 3.能自动打开或者关闭日志输出功能 如何在Xcode中添加pch文 ...

  6. iOS项目添加PCH文件

    1.单击Info.plist右键单击->New File->Other->PCH File创建PCH文件 文件名设置成:项目名-Prefix  ->点击Create,创建成功. ...

  7. IOS Xcode7 新建PCH文件

    第一步:新建文件找到iOS中的Othere点击PCH File 点击Next 第二步:修改文件名为当前工程名(一般与工程名同名),勾选Targets,点击create创建 第三步:如图选中红框中的路径 ...

  8. (转)iOS学习之 plist文件的读写

    在做iOS开发时,经常用到到plist文件, 那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件.属性列表文件的扩展名为.plist ...

  9. iOS学习之 plist文件的读写

    在做iOS开发时,经经常使用到到plist文件,  那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件.属性列表文件的扩展名为.pli ...

随机推荐

  1. EF增删改查基础

    #region 1.0 新增 -void Add() /// <summary> /// 1.0 新增 /// </summary> static void Add() { / ...

  2. merge

    当两个DataFrame相加的时候,如果,其中一个不全则会相加产生NA,所以必须一次性将数据的索引索引确定下来,然后对所有数据重建索引然后,填充0,再相加.否则有数据的和没数据的相加结果都变为了NA, ...

  3. php 简易购物习题

    1.货物界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  4. Android Tab -- 使用ViewPager、PagerTitleStrip/PagerTabStrip来实现

    原文地址:http://blog.csdn.net/crazy1235/article/details/42678877 效果:滑动切换:点击标签切换. 代码:https://github.com/l ...

  5. vim 查找时忽略大小写

    :set ic 忽略大小写#ignorecase :set noic 不忽略大小写#noignorecase

  6. 【转载】 Python 调整屏幕分辨率

    转载来自: http://www.cnblogs.com/fatterbetter/p/4115423.html 需要用windows的api,ChangeDisplaySettings 实现代码如下 ...

  7. ExcelReport第二篇:ExcelReport源码解析

    导航 目   录:基于NPOI的报表引擎——ExcelReport 上一篇:使用ExcelReport导出Excel 下一篇:扩展元素格式化器 概述 针对上一篇随笔收到的反馈,在展开对ExcelRep ...

  8. 【PHP构造方法和析构方法的使用】

    构造方法:__construct,析构方法:__destruct 代码示例: <?php class Person { public $name; public $age; public fun ...

  9. MySQL5.7中新增的JSON类型的使用方法

    创建表json_test: CREATE TABLE json_test(id INT(11) AUTO_INCREMENT PRIMARY KEY,person_desc JSON)ENGINE I ...

  10. Linux学习笔记(1)Linux虚拟机安装过程中的知识点及常用管理工具

    1. VMware的相关知识 (1)建议的VMware的配置: CPU 主频1GHz以上 内存 1GB以上 硬盘 分区空闲空间8GB以上 (2)VMware创建快照 快照的作用是保存虚拟机的现有状态, ...