(一)Xcode7 PCH 文件的使用
作用:
1.存放一些全局的宏(整个项目中都用得上的宏)
2.用来包含一些全部的头文件(整个项目中都用得上的头文件)
3.能自动打开或者关闭日志输出功能
使用:
- 创建pch 文件命名推荐 YourProductName-Prefix.pch
- 在Build Setting 中搜索 Prefix Header, 找到 Apple VVLM7.0 - Language, 在 Prefix Header 后面添加路径 YourProductName/YourProductName-Prefix.pch—————eg:
或者最好这样用, 路径会随文件动态变化
$(SRCROOT)/APPlayer-prefix.pch
- 开关Precompile Prefix Header时,pch的编译和导入机制是有很大不同的。
如果Precompile Prefix Header为YES,那么pch会被预编译,预编译后的pch文件会被缓存起来,从而提高编译速度。 - 如果使用了 cocoapods 在 pch 文件中导入 pod 包含的第三方库时,需要设置添加$(PODS_ROOT) 并且为 recursive.
- $(SRCROOT)/$(PRODUCT_NAME)YourProductName-prefix.pch
建议命名为
YourProductName-prefix.pch....
- 在. pch文件中添加内容
其中包括:
#ifdef __OBJC__
在此导入OC的头文件
#endif
因为在一个OC工程中,可能包含.m、.mm、.c、.cpp四类编译文件,这四类文件均会引用.pch预编译头。在编译.c、.cpp时,因为语法不兼容OC,所以预编译头中不能包含objc代码。
所以.pch是2类源文件共用的,所以在pch中,oc头文件要用__OBJC__包含起来。如下:
五角星——>>>>>注意:::__________如果在 PCH 中导入头文件没有提示并且点击无法跳转到相应的头文件需要检查3处:
1. 创建. pch 文件时,,选择 target 打钩
2.Build Setting —>Prefix Header —>设置
$(SRCROOT)/XXX.pch, 并且需要修改Precompile Prefix File 为 YES
3. Build Setting —>search paths —>User Header Search Path 添加$(PODS_ROOT) 并且为
recursive.
4. clean , 重启尝试.