在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问。是一个预编译文件。

首先说一下pch的作用:

1.存放一些全局的宏(整个项目中都用得上的宏)

2.用来包含一些全部的头文件(整个项目中都用得上的头文件)

3.能自动打开或者关闭日志输出功能

虽然用了很久的Xcode6但是项目是xcode5之前创建好的,所以一开始并没有发现缺少了这个pch文件。苹果为什么要这么做呢,原因可能是因为大家把大量的头文件和宏定义放到pch里边,导致编译时间过长。苹果去掉他可能是要加快编译时间增加用户体验。虽然失去了编程的便利性。不得不佩服苹果的以用户为中心的思考方式。更详细的讨论可以去Stackoverflow上去看http://stackoverflow.com/questions/24158648/why-isnt-projectname-prefix-pch-created-automatically-in-xcode-6。

如何在Xcode中添加pch文件:

Command+N,打开新建文件窗口:ios->other->PCH file,创建一个pch文件

在工程的TARGETS里边Building Setting中搜索Prefix Header,然后把Precompile Prefix Header右边的NO改为Yes:

3

然后在Precompile Prefix Header下边的Prefix Header右边双击,添加刚刚创建的pch文件的工程路径,添加格式:“$(SRCROOT)/项目名称/pch文件名” ,$(SRCROOT)的意思就是工程根目录的意思。如果还不太清楚的话可以右键pch文件,然后show in finder:

上图中黄色圈出来的就是$(SRCROOT),也就是工程的根目录,然后后边还有一个PchText和pch两个文件夹,所以完整的pch文件的路径就是:$(SRCROOT)/PchText/pch

添加完成后,他会自动帮你变成你工程所在的路径:

可以了,编译一下程序,如果有错误检查一下添加的路径是否正确。

4

将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度

文/Tsuru(简书作者)
原文链接:http://www.jianshu.com/p/67ce72c4ad6c
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

iOS之pch文件的正确使用的更多相关文章

  1. iOS 开发 Pch 文件的正确使用

    在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件 ...

  2. iOS之PCH文件

    在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件 ...

  3. iOS 关于PCH文件(全局文件)的介绍

    1.pch文件是什么 pch文件即 扩展名为.pch的预编译文件.是将工程中较稳定的不会经常修改的代码预先编译好,放在一个公共的文件(.pch)里. 2.pch 文件的作用 A.存放宏. 比如  #d ...

  4. IOS开发-PCH文件的使用

    PCH文件存储一些共享的数据,在其他的文件可以直接使用,这样减少程序输入,比如存储宏定义 1.首先新建PCH文件 2.建立完毕 3.在这里找到文件路径 4.进入targets 点击Build Sttt ...

  5. ios中pch文件的创建与配置

     PCH文件(Precompile Prefix Header File),也就是预编译头文件,其作用就是,方便你一次性导入在多个文件中同时用到的头文件.宏或者URL地址等(全局使用),可以有效的帮你 ...

  6. iOS添加pch文件

    1.第一步,创建pch文件 第二步设置pch文件:相对地址,填写$(SRCROOT)/YTCompleteCarSell/PrefixHeader.pch  $(SRCROOT)是项目地址/项目名/p ...

  7. XCode6 ,iOS之PCH文件配置

    1: 创建PCH文件 NewFile-->Other中的PCH File-->Next-->Create 2:配置PCH文件 项目中的TARGETS-->Build Setti ...

  8. iOS中.pch文件怎样使用

    pch 能够用来存储共享信息,比方设备屏幕的宽度,高度.版本等等 公用信息 Xcode 老版本号会自己主动为我们创建pch文件,新版本号開始不自己主动创建了.假设须要使用能够自己手动创建 waterm ...

  9. ios 添加PCH文件

随机推荐

  1. Javascript 知识点简介

    如何在HTML中引入JS? 所有重定向的HTML标签内都可以嵌入javascript代码. 浮点数不要用 == 来进行判断 var num=0;    for(var i=0;i<10;i++) ...

  2. Loading Data into HDFS

    How to use a PDI job to move a file into HDFS. Prerequisites In order to follow along with this how- ...

  3. POJ3279 Fliptile 枚举+简单搜索

    题意:一个矩阵,每个点1或0,然后每次翻一个点,它周围上下左右(包括自己)1->0,0->1,问最少翻几次可以矩阵全是0,忽略题目说的字典序 分析:枚举第一行所有的情况,然后下面几行也随之 ...

  4. lightoj 1020 (博弈)

    思路:很简单的博弈,找出每个人先拿的必胜态进行状态转移即可. #include<cstdio> #include<string> #include<cstring> ...

  5. 用pip爽久了,竟然完了easy install安装过程了

    新换了mac,装python环境时才发现,一直用pip,反而忘了easy_install的安装方法了.这里记录一下: 1.下载ez_install.py文件:https://bootstrap.pyp ...

  6. unity3d切换场景时,背景音乐保持播放

    首先创建两个场景: One,Two 再创建一个空游戏对象: GameObject,并添加AudioSource组件,把要播放的音乐拖放进去 给GameObject添加脚本AlwayAudio,代码如下 ...

  7. Linux下配置Mysql允许远程访问

    操作非常简单,就5步骤,如下: 1.进入 mysql: ? 1 /usr/local/mysql/bin/mysql -u root -p 2.使用 mysql库 : ? 1 use mysql; 3 ...

  8. Magento 多语言

    一: 1>进入后台选择如下: 2> 显示页面如下: 输入后台登陆的用户名和密码. 3>然后去Magento官网搜索一下 Magento Official Chinese Transl ...

  9. 【bzoj1300】大数计算器

    题意: 求C(n,m) 如果C(n,m)的位数<=12 那么直接输出 否则按XXX...XXXXXXXXX的形式输出 题解: 这题之前打过 但是昨天又想出一种新的做法 先说下新的做法吧- - _ ...

  10. AVR ATMEGA8 串口USART

    avr串口配置很简单,配置就几个寄存器就可以进收发: 但有几点要搞明白的是: 1.串口一但被配置成功IO功能自动被占用,这点与LPC或STM8/32不同(需要寄存配置): 2.没有专门的串口开起或闭关 ...