美文网首页程序员
Xcode:PCH文件的创建和使用

Xcode:PCH文件的创建和使用

作者: 鴿鴿 | 来源:发表于2018-03-19 18:26 被阅读0次

由于Xcode不再自动生成PCH文件(Precompile Prefix Header File),所以需要我们自己创建,在新创建pch文件的时候,需要做的操作:

找到PCH File image.png

创建完成之后,在Build Settings里面找到下图所示位置

image.png

关于路径的填写问题,双击打开之后有个弹框,然后用鼠标拖动创建好的 PCH 文件,拖到弹框之后放手,就会自动生成 PCH 的路径
然后用$(SRCROOT)替换一下,就可以了(注意替换前后显示的路径是一致的方可)

这是拖拽之后生成的路径 image.png
注意观察,替换前后下图显示的路径是没有变化的
image.png

以下内容网上查找,属于转载,但发现也是转载文章,尝试但未找到原文章@Enrica_Shi
https://www.cnblogs.com/wzdevelop/p/7339262.html

链接已失效,尝试找到作者简书,但是文章数为0

二、编辑PCH文件

 由于编辑器会自动帮你把所有的预编译文头文件导入到项目所有的源文件中,所以从编程规范上讲,应该利用条件编译将Objective-C头文件隔离起来。尤其是在混合编程时,这种操作就显得格外重要。下面就具体演示一下。

 先在PCH文件中随便导入一个OC分类的头文件,然后在项目中新建一个C语言文件,在没有利用条件编译对OC分类头文件进行有效隔离的情况,按住command + B键编译一下,看看会出现什么情况:

混合编程时没有对OC头文件进行隔离的情况.gif

 因为编译器会将PCH中的头文件导入到项目中所有的源文件中,而C语言的源文件是不可能识别OC头文件中的内容的,所以编译器会报一堆的错误。现在修改PCH文件,利用条件编译将OC分类的头文件进行隔离,然后再重复上面的操作看一下还有没有报错:

利用条件编译对OC的头文件进行有效的隔离.gif

 #ifdef OBJC(OBJC前后是两条下划线)和#endif可以将OC的头文件与C语言的源文件进行有效的隔离。也就是说,你在OC头文件前后加了这个条件编译之后,编译器便不再将OC的头文件拷贝到C语言的源文件中,它只会把OC的头文件拷贝到OC的源文件中,所以之前的错误都消失了。

 PCH文件可以很方便的将多个文件中都要使用的头文件一次性导入到项目中所有的源文件中,同时,你也可以在PCH文件中定义全局使用的宏,这种操作可以有效帮你节约开发时间。但是,同时你也应该注意到,PCH文件的使用,无形中增加了项目编译的时间,应该有选择性的慎重使用。

相关文章

  • iOS 创建pch文件

    一、手动创建和配置PCH文件 PCH文件的命名一般和它所在的项目同名。新建完PCH文件以后,先在Xcode中对其进...

  • Xcode:PCH文件的创建和使用

    由于Xcode不再自动生成PCH文件(Precompile Prefix Header File),所以需要我们自...

  • iOS开发——pch文件添加和使用

    添加pch文件 Xcode6之后不会自动创建-Prefix.pch文件到你的工程里,所以我们想使用pch文件的话得...

  • iOS 项目中加入 pch文件

    1.创建pch文件 2.在pch文件中加入要全局使用的头文件 3.在工程中加入该pch文件 创建pch文件 直接创...

  • Xcode8 pch文件的配置

    # Xcode8 pch的配置 ## pch文件的设置 ### `$(SRCROOT)/+工程名+pch文件名字....

  • Xcode 6设置Pch文件

    Xcode 6将Pch文件移出默认创建文件, 须使用者手动添加, 添加步骤如下: 1. 创建Pch文件 2. 修改...

  • 手动配置PCH文件

    在Xcode5.0以后,需要手动配置PCH文件才能使用 步骤

  • iOS中PCH文件的使用

    1. PCH简介 Xcode6之前创建的工程都自带PCH文件,Xcode6之后创建的工程默认不带PCH文件,苹果可...

  • 如何在Xcode中创建一个pch文件

    编译环境: Xcode9 1.pch文件使用介绍 pch文件是一个预编译文件,在项目文件比较多的时候,多次导入同一...

  • pch文件的创建和使用

    1、pch的作用: 存放一些全局的宏(整个项目中都用得上的宏) 用来包含一些全部的头文件(整个项目中都用得上的头文...

网友评论

    本文标题:Xcode:PCH文件的创建和使用

    本文链接:https://www.haomeiwen.com/subject/tgljfftx.html