大家都知道在OC中我们经常使用PCH文件定义一些全局的宏定义,这样使用起来很方便。但是在Swift中创建PCH文件是有些差异的。这里分别就两种语言创建PCH文件做一下记录。
- Objective-C
一、在Objective-C
代码中,我们可以把一些公用的宏定义,头文件放在PCH文件
中,配置文件,来供应整个工程文件下所有文件,每个位置的随时获取与应用.
过程:
① 在对应位置创建所你所需要的pch文件!按步骤进行,并点击 Next 完成创建
② 在所创建的PCH文件中,在 #define
和 #endif
之间可以定义宏,也可导入需要全局使用的文件的头文件(.h文件)
③ 在上一步完成后,还不能实现效果.还需要对PCH文件进行文件配置:找到对应的Build settings
位置,在All中搜索prefix关键字,找到对应的Prefix Header
列表项,在对应内容栏里双击,将pch文件路径输入,完成配置!
- 点击PCH文件,Xcode的右侧会显示PCH的属性。这里我们可以获取到PCH的
绝对路径
。从工程的路径开始,前面使用$(SRCROOT)
代替,即为PCH的相对路径
。
(即,绝对路径:/Users/用户名/Desktop/app项目文件夹名/app根目录文件名/PrefixHeader.pch
;
相对路径:$(SRCROOT)/app根目录文件名/PrefixHeader.pch
)
④ 任务完成,这样你有什么想要在全局都可以获得参数,方法,文件等都可以写在其中!
- Swift
二、但是,在swift创建的工程项目文件里,按照上述方案是行不通的 .swift项目中只有 .swift 为后缀的项目文件,pch文件是后缀为 .h 的项目文件,自然是不可行的!但官方为了OC和Swift相互兼容提供了桥接方法
(即:设置桥接文件
,可以进行OC和Swift混编
),结果尝试了之后,对于.pch文件来说,这却是行不通的!
① 首先,我们先来说swift和OC之间的那个桥接文件是怎么来的吧!第一,当然是需要在对应的位置按照如下顺序创建所需要的OC文件:
第一步:
第二步:
② 再在点击 Next 按钮后,会出现一个弹框,如图: {译: 你愿意配置一个OC桥接头文件吗?添加这个文件到(当前项目)中将可以混编swift和OC.你是否愿意让Xcode自动配置这个桥接头文件,从而可以用两种语言来实现多种类的使用?}
③ 这样就可以使Xcode自己创建并配置好对应的桥接文件.如图:但是对于继承各种类的项目文件来说,一切都是可行的!但是,将pch文件导入,却并不能在swift文件中正常使用其中所定义的宏!
④ 上面的 ③ 这一步是不可行. 下面才是Swift中代替OC的PCH文件的.一切的中心就是那个 Swift File 文件,说白了,他就是Swift环境下个PCH文件,按照步骤,点击Next完成创建!
⑤ 如下,就是你所期待已久的Swift环境下的"PCH",其实,就是一个Swift文件!在编辑区域,就可以用Swift语言进行如OC下的"宏"的定义! Foundation改为UIKit
这样我们就可以在工程中畅快地使用全局的宏定义了。