iOS中手把手教你配置pch文件

  • pch文件:

预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里,它们在整个工程中是较为稳定的,即在工程开发过程中不会经常被修改的代码。在我的理解里是把一些宏定义(kScreenW等),一些要在多个类中使用的头文件在此文件中书写。简单来说,在.pch文件中定义的宏定义会作用到项目中的所有文件。

  • pch文件的作用:

    对于xcode6以后创建工程不在自动添加.pch文件了,很多资料认为.pch文件会影响效率。我觉得.pch文件总体上会加速编译,因为xcode会对.pch文件中的定义预编译并缓存。之所以减慢编译速度应该是因为很多开发者使用方式不对吧。
    我们可以想到.pch是把双刃剑,提供便利性的同时如果使用不当可能增加Build的时间。
  • 使用注意点:

  1. 不要把绝大多数甚至是所有的宏定义放进来。
  2. 在某个类或者某几个类中使用的宏定义别放进来。
  3. 放置公用性高的头文件,比如使用率较高的fundation框架,第三方库头文件。
  4. 为了整洁性的要求,建议把公用性低的宏定义整理到某个头文件再将该头文件写入.pch文件。
  • pch文件的创建

  1. 新建文件(command+N)选择PCHFile
iOS中手把手教你配置pch文件_第1张图片
pch创建.png
  1. 点击项目,选择Bulid Settings,在搜索框中写入Prefix Header
iOS中手把手教你配置pch文件_第2张图片
set.png
  1. 找到这一栏Precompile Prefix Header,将NO改为Yes
iOS中手把手教你配置pch文件_第3张图片
YES.png
  1. 在Prefix Header这一栏后面双击出现白框,输入$(SRCROOT)/项目名/PCH文件名.pch 。
iOS中手把手教你配置pch文件_第4张图片
输入.png

注意这里的SRCROOT一定要大写,该目录下的所有文件不能出现汉字否则找不到路径。如下图的路径为:$(SRCROOT)/myCar/Resource/Global/PrefixHeader.pch

iOS中手把手教你配置pch文件_第5张图片
路径.png
  1. 到这里已经配置完毕,快捷键(Command+B)编译下看是否报错,报错请看上面的注意点。没报错的话可以在pch文件写宏定义测试下,以及导入一些头文件。

#ifndef PrefixHeader_pch
#define PrefixHeader_pch

// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
//下面是宏定是获取屏幕的宽度和高度
#define KScreenW [UIScreen mainScreen].bounds.size.width
#define KScreenH [UIScreen mainScreen].bounds.size.height

#endif /* PrefixHeader_pch */


你可能感兴趣的:(iOS中手把手教你配置pch文件)