PCH文件的添加过程

来源:互联网 发布:sql insert多行 编辑:程序博客网 时间:2024/06/08 13:51

在Xcode6之前,新建一个工程的时候,系统会帮我们自动新建一个以工程名为名字的pch (precompile header)文件,在开发过程中,可以将那些整个工程都广泛使用的头文件包含在该文件下,编译器就会自动的将pch文件中的头文件添加到所有的源文件中去,这样在需要使用相关类的时候不需要使用import就可以直接使用头文件中的内容,很大程度上带来了编程的便利性,但潜在的也带来了一些问题,这也是在Xcode6中默认不再创建pch的原因吧。

关于pch的得与失,stackoverflow上有段话讲的比较透彻:http://stackoverflow.com/questions/24158648/why-isnt-projectname-prefix-pch-created-automatically-in-xcode-6

As to where to put code that you would put in a prefix header, there is no code you should put in a prefix header. Put your imports into the files that need them. Put your definitions into their own files. Put your macros...nowhere. Stop writing macros unless there is no other way (such as when you need __FILE__). If you do need macros, put them in a header and include it.

The prefix header was necessary for things that are huge and used by nearly everything in the whole system (like Foundation.h). If you have something that huge and ubiquitous, you should rethink your architecture. Prefix headers make code reuse hard, and introduce subtle build problems if any of the files listed can change. Avoid them until you have a serious build time problem that you can demonstrate is dramatically improved with a prefix header.

In that case you can create one and pass it into clang, but it's incredibly rare that it's a good idea.


但有些时候,还是需要pch文件的,那么怎么在Xcode6中添加一个pch文件呢?

首先,Command+N,打开新建文件窗口:iOS->other->PCH file,创建一个pch文件,添加需要引入的头文件名:




其次,修改工程配置文件,将刚刚创建的PCH file的路径添加到building setting中的precompile header选项中去,注意debug和release两栏都要添加:




PCH文件的地址可以装直接把pch文件拖到PrefixHeader里面会自动生成地址

这里我们建议把地址改为相对地址,方法如下

把pch 是我路径改为相对路径这样把工程在其他设备上也能查找到相应的pch 文件

(1、Build Setting 设置中找到Precomplie Prefix Header(可以直接查找Prefix Header) 。2、Precomplie Prefix Header这项设置设置成Yes。这个是缓存的作用.3、把Precomplie Prefix Header 下面一项Prefix Header 双击打开,把刚刚建好的pch文件拖到打开的对话框中,然后把 $(SRCROOT)  拷贝代替 Prefix Header 中的路径(一般是前面你的地址加你的项目的文件夹名(项目的文件夹名字后面才是你的项目名))替换后的格式如: $(SRCROOT)/WebView/PrefixHeader.pch,替换后把鼠标移到路径的末尾 回车,这样避免回车把路径分行隔开)  


原创粉丝点击