在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问。是一个预编译文件。
首先说一下pch的作用:
1.存放一些全局的宏(整个项目中都用得上的宏)
2.用来包含一些全部的头文件(整个项目中都用得上的头文件)
3.能自动打开或者关闭日志输出功能
但是Xcode7以后不会再自动创建PCH了,苹果为什么要这么做呢,原因可能是因为大家把大量的头文件和宏定义放到pch里边,导致编译时间过长。苹果去掉他可能是要加快编译时间增加用户体验。虽然失去了编程的便利性。毕竟苹果是以用户为中心的。
那么问题来了,我们想继续使用PCH文件改怎么搞呢?
解决方案:
1.创建新的文件,搜索pch, 如下图
2.创建完成后,设置可用
在Build Settings里搜索prefix header(注意选择target) 如下图:
2.1 Precompile Prefix Header 设置成YES;
2.2 Prefix Header 设置路径, 双击后,直接把左侧的PrefixHeader.pch拉进弹框里,回车就OK了
3. 如果弄完后,编译报错,说什么什么文件找不到,解决方案如下
还是刚才的路径Build Settings - Prefix Header,修改pch路径为
$(PROJECT_DIR)/public.pch即可
OR
$(SRCROOT)/项目名/pch文件名
4.报错问题提示导入第三方的 .h 头文件找不到, 使用终极方案, 简单粗暴
这种情况一般是绝对路径、相对路径方面出现问题了(多出现在别人拷贝过来的项目),解决办法有两种:第一种就是修改默认设置比较费事儿,我也没研究。那么下面再提供另外一种比较简单粗暴的解决方法:
1 .打开项目文件:将 .xcworkspace和 pod 开头的文件全删,除了Podfile,除了Podfile
2 .pod install
3 .重新打开项目:command + shift + K clean一下
4 .command + B