iOS中pch文件的设置

问题一:pch文件是什么?
问题二:pch文件在开发中起到什么作用?
问题三:如何设置pch文件?

pch文件是什么

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

pch文件的作用

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

   因此我们在使用时,要注意以下几点:

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

如何设置pch文件

1.新建文件,选择PCH File
iOS中pch文件的设置_第1张图片
2.点击项目,选择Bulid Settings,在搜索框中写入Prefix Header

3.找到这一栏Precompile Prefix Header,将NO改为Yes
这里写图片描述
4.在Prefix Header这一栏后面双击出现白框,输入$(SRCROOT)/项目名/Prefix.pch 。
注意这里的SRCROOT一定要大写,项目名不能出现汉字。
iOS中pch文件的设置_第2张图片

至此,就可以在pch文件中写入宏定义,以及导入一些头文件。

#define kScreenW [UIScreen mainScreen].bounds.size.width
#define kScreenH [UIScreen mainScreen].bounds.size.height

这样在所有的项目文件里都可以直接使用kScreenW来代替[UIScreen mainScreen].bounds.size.width,是不是很简便?

你可能感兴趣的:(知识)