在Xcode6以前,新建一个工程的时候,系统会帮咱们自动新建一个以工程名为名字的 pch (precompile header)文件,在开发过程当中,能够将那些整个工程都普遍使用的头文件包含在该文件下,编译器就会自动的将pch文件中的头文件添加到全部的源文件中 去,这样在须要使用相关类的时候不须要使用import就能够直接使用头文件中的内容,很大程度上带来了编程的便利性,但潜在的也带来了一些问题,这也是 在Xcode6中默认再也不建立pch的缘由吧。ios
关于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.xcode
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.less
In that case you can create one and pass it into clang, but it's incredibly rare that it's a good idea.ide
但有些时候,仍是须要pch文件的,那么怎么在Xcode6中添加一个pch文件呢?ui
首先,Command+N,打开新建文件窗口:ios->other->PCH file,建立一个pch文件,添加须要引入的头文件名:idea
其次,修改工程配置文件,将刚刚建立的PCH file的路径添加到building setting中的precompile header选项中去,注意debug和release两栏都要添加:spa
至此,大功告成,编译一遍,新添加的pch文件就能够正常使用了^_^。debug