转 Xcode6与Xcode5之间的细节差别(Precompile Prefix Header)

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”:

(2)修改工程配置文件,将创建的pch文件的路径添加到building setting中的precompile header选项中去(路径添加“$(SRCROOT)/项目名称/pch文件名”):

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

这里注意,开关Precompile Prefix Header时,pch的编译和导入机制是有很大不同的:


(1)如果Precompile Prefix Header为YES,那么pch会被预编译,预编译后的pch文件会被缓存起来,从而提高编译速度。

(2)如果Precompile Prefix Header为NO,那么pch不会被预编译,而是在每一个用到它导入的框架类库的.m文件中编译一次,降低了编译速度。

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

时间: 2024-11-03 02:39:14

转 Xcode6与Xcode5之间的细节差别(Precompile Prefix Header)的相关文章

Xcode6中手动添加Precompile Prefix Header

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

Xcode6导入.pch文件(Precompile Prefix Header)

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

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

一直在用xcode6开发,但项目都是在xcode5上创建的,所以一直没注意到,xcode6竟然干掉pch文件了. 为什么xcode6没有自动创建pch文件呢? 简单地看:我们在写项目的时候,大部分宏定义,头文件导入都在这里,Xcode6去掉Precompile Prefix Header的主要原因可能在于Prefix Header大大的增加了Build的时间.没有了Prefix Header之后就要通过手动@import来手动导入头文件了,在失去了编程便利性的同时也降低了Build的时间.具体原

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

1.新建一个pch文件 command + N , 选择 iOS -> Other -> PCHFile 2.将building setting中的precompile header选项的路径添加“$(SRCROOT)/项目名称/pch文件名”(例如:$(SRCROOT)/RMWeibo/PrefixHeader.pch) 编译一下,检查路径是否正确 3. 将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度 参考来源:http://b

并查集类的c++封装,比较union_find algorithm四种实现方法之间的性能差别

问题描述: 在计算机科学中,并查集是一种树型的数据结构,其保持着用于处理一些不相交集合(Disjoint Sets)的合并及查询问题.有一个联合-查找算法(union-find algorithm)定义了两个操作用于此数据结构: Find:确定元素属于哪一个子集.它可以被用来确定两个元素是否属于同一子集: Union:将两个子集合并成同一个集合: 实现并查集的关键是实现union-find algorithm, 本文根据常用的四种算法,实现了这个类,具体算法实现请参看维基百科: 制造测试数据集,

消除2个按钮之间1px细节引起的冲突

1.代码 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>消除2个按钮之间1px细节引起的冲突</title> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css&

iOS Xcode6和Xcode5的区别?

1.Xcode6在新建项目时,取消了Class Prefix(类前缀) 因为Xcode6是苹果专为Swift而设计的,而Swift语言有命名空间,如果在Xcode6上用OC开发项目,需要类前缀,可以在targets里做相应设置 未完待续....

Xcode6和Xcode5获取app名字

1.在Xcode5下,获取程序名字(app name)的方法为: NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; NSString *bundleName = [infoDictionary objectForKey:@"CFBundleName"]; 或者 NSString *proName = [[[NSBundle mainBundle] infoDictionary] objectFo

Xcode6与Xcode5中沙盒的变动以及偏好设置目录的变动

1.Xcode6模拟器路径与Xcode5模拟器路径对比: (1)Xcode5中模拟器路径为:/Users/用户名/Library/Application Support/iPhone Simulator (2)Xcode6中模拟器路径为:/Users/用户名/ Library/Developer/CoreSimulator 其中Devices文件夹下的16个文件对应Xcode6下的16个模拟器,可以根据各个文件夹下的device.plist文件得到具体的是哪个模拟器: 2.Xcode6沙盒路径与