xcode6如何导入全局头文件


如题,之前Xcode5的话是在prefix文件内import一次,就可以全局使用了,xcode6取消了prefix文件,替代的方法是什么呢? 

没有什么替代方法,可能是苹果出于对项目构建或其他优化的考虑,不把预编译作为默认添加。 
你可以自己手动添加进去。 


  1. 1、Add new PCH file to the project - New file > Other > PCH file 
  2. 2、At the project 'Build Settings' option - set the value of 'Prefix Header' to your PCH file name, with the project name as prefix - i.e. for project named 'TestProject' and PCH file named 'MyPrefixHeaderFile', add the value 'TestProject/MyPrefixHeaderFile.pch' to the plist. 
译文:在该项目的生成设置“选项 - ”前缀头'的值设置为您的PCH文件名称,项目名称为前缀 - 即对于与PCH文件命名为“TestProject的”项目命名为“MyPrefixHeaderFile”,添加值“TestProject的/MyPrefixHeaderFile.pch'的plist中。


至于为什么不作为默认添加项你可以看下这个链接的回答https://stackoverflow.com/questions/24158648/why-isnt-projectname-prefix-pch-created-automatically-in-xcode-6


Xcode6为什么干掉pch(Precompile Prefix Header)&如何添加pch文件

一直在用xcode6开发,但项目都是在xcode5上创建的,所以一直没注意到,xcode6竟然干掉pch文件了。

为什么xcode6没有自动创建pch文件呢?

简单地看:我们在写项目的时候,大部分宏定义,头文件导入都在这里,Xcode6去掉Precompile Prefix Header的主要原因可能在于Prefix Header大大的增加了Build的时间。没有了Prefix Header之后就要通过手动@import来手动导入头文件了,在失去了编程便利性的同时也降低了Build的时间。具体原因

StackOverFlow上讨论的已经比较清晰了

StackOverFlow:为什么xcode6没有自动创建pch文件呢?

如何在Xcode6中添加pch(Precompile Prefix Header)?

1,Command+N,打开新建文件窗口:ios->other->PCH file,创建一个pch文件:“工程名-Prefix.pch”:

xcode6如何导入全局头文件_第1张图片

2,将building setting中的precompile header选项的路径添加“$(SRCROOT)/项目名称/pch文件名”(例如:$(SRCROOT)/LotteryFive/LotteryFive-Prefix.pch)

xcode6如何导入全局头文件_第2张图片

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

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

xcode6如何导入全局头文件_第3张图片



-------------------------------------------------

Xcode5中创建一个工程的时候,系统会自动创建一个以以工程名为名字的pch(Precompile Prefix Header)文件,开发的过程中可以将广泛使用的头文件以及宏包含在该文件下,编译器就会自动的将pch文件中的头文件添加到所有的源文件中去,这样在需要使用相关类的时候不需要使用import就可以直接使用头文件中的内容,很大程度上给程序员带来了编程的便利性。但是在Xcode6中去掉Precompile Prefix Header文件。

Xcode6去掉Precompile Prefix Header的主要原因可能在于Prefix Header大大的增加了Build的时间。没有了Prefix Header之后就要通过手动@import来手动导入头文件了,在失去了编程便利性的同时也降低了Build的时间。

如何在Xcode6中手动添加Precompile Prefix Header?

(1)在工程中添加一个pch文件,命名可以继续沿用Xcode5中得“工程名-Prefix.pch”:
xcode6如何导入全局头文件_第4张图片

(2)修改工程配置文件,将创建的pch文件的路径添加到building setting中的precompile header选项中去(路径添加“$(SRCROOT)/项目名称/pch文件名”):
xcode6如何导入全局头文件_第5张图片

至此,完成了手动添加pch文件,编译一下程序,如果有错误检查一下添加的路径是否正确。

这里注意,开关Precompile Prefix Header时,pch的编译和导入机制是有很大不同的:
xcode6如何导入全局头文件_第6张图片
(1)如果Precompile Prefix Header为YES,那么pch会被预编译,预编译后的pch文件会被缓存起来,从而提高编译速度。
(2)如果Precompile Prefix Header为NO,那么pch不会被预编译,而是在每一个用到它导入的框架类库的.m文件中编译一次,降低了编译速度。

总结:既然苹果在Xcode6中去掉了Precompile Prefix Header文件,在开发的过程中可以尽量少用pch文件,如果要用也要尽量减少pch文件中得内容,降低程序对pch文件的依赖。

参考自: http://blog.csdn.net/jymn_chen/article/details/39314163


你可能感兴趣的:(iOS)