您的位置:首页 > 移动开发 > IOS开发

iOS pch文件详解

2015-10-24 10:52 323 查看
     在Xcode6之后,包括现在的Xcode7,都不会自动产生.pch文件了。貌似已经不推荐使用了。但是在看别人很多项目的时候,还是有包括这个文件,今天我们来谈谈.pch是什么吧。
      ***_Prefix.pch就是该项目的预编译头文件。.pch表示PreComplied Header,是一个工程要用到的来自于外部框架的头文件列表。Xcode将会首先会编译.pch中这些头文件,以减少在Build整个项目的时间。通常所有的文件都自动包含了pch文件,系统在编译每个.h,  .m文件前,都先会import这个文件,而不再需要单独编译每个文件中的头文件。加速了编译过程。
      如果我们不小心删掉了.pch文件,那么应该怎么办呢?自己再创建一个PCH File即可,名字可以任意取。然后再来到项目设置的Build Setting中,右上角搜索框中输入“pch”进行查找,找到一个Prefix Header,然后输入修改后的名字即可。下面我来进行实际操作一下:
(1)选择PCH File,创建。




(2)pch文件的名称一般为"项目名-Prefix.pch".由于该项目的名称为MyFirstApp.   所以在下面输入"MyFirstApp-Prefix"即可。请注意:一定要勾选下面的Targets.!!!!!!


.

(3)创建完成后我们需要设置pch文件的路径,进入Build Setting ,在搜索框中输入prefix header搜索,找到如下地方,直接输入pch文件的名称即可。




此时直接输入的是相对路径,项目可以直接访问到。我也在网上看到有的人是用“MyFirstApp/MyFirstApp-Prefix.pch”这样的方式访问的,大家也可以去尝试一下是否可行。如果我想用的是绝对路径访问,那么应该怎么写呢(虽然不推荐绝对路径!)?那就是直接把pch文件拖入到输入框中即可,就会自动生成绝对路径了。
在该步骤中,推荐把上面的"Precompile Prefix Header"设置为YES。

  (4)把常用的头文件都包含到pch中,比如下面就是我的一个pch文件:
#import "AppDelegate.h"
#import <UIKit/UIKit.h>
#import "AppDelegate.h"

#define MYNAME lala
      这样,我们就不需要在所有的.h,    .m文件中包含这三个头文件了。但是请注意!!!!!!有一个例外!!!!!
      iOS项目中的AppDelegate.h文件中的#import <UIKit/UIKit.h> 不能缺少。这是因为AppDelegate.h文件是整个项目的启动文件,比pch文件早编译,所以AppDelegate.h中所需的头文件不能放入pch中。
      我在前面一篇博客《iOS定义常量的最佳实践》中就如何在项目中定义常量进行了说明,现在有了pch文件,这也变得很方便了。我们可以在pch文件中进行#define 宏定义。然后在项目的任何位置都可以使用这个宏定义,不需要显式的引入pch文件,非常方便。可惜是pch中不能定义const常量。。。

github主页:https://github.com/chenyufeng1991  。欢迎大家访问!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: