时间有脚,从不停留。
转眼Swift已经更新到4.0版本了。
Swift的优势不需多讲,缺点自然也是有的,不过这些问题不是我们要讨论的重点。
重点是什么呢?重点是现在的项目是oc写的啊!
推到了重构么?不存在的,讲道理虽然小儿子Swift来势汹汹,但现在世界还是大儿子oc的天下。
不过这不妨碍我们在觉得合适的时候在后续项目更新里开始慢慢使用一些Swift的代码,毕竟苹果爸爸允许我们混编,虽然这样做会使编译后的项目变大了好多......
好了,那么怎么在oc的项目中使用Swift呢?其实很简单,我们搭一座“桥”就好了。
开始动工:
1.桥接文件
如果在项目中第一次创建别的语言文件,比如在一个oc的项目中第一次创建Swift的文件,xcode会提示是否创建一个桥接文件,点击创建就好了,这是最简单的步骤。
当然如果你觉得默认文件的名字不是很对你胃口,或者你不小心点了取消或者移除了已创建的桥接文件,没关系,我们可以自定义一个嘛。
那么如何创建自定义的桥接文件呢?
1.1 创建.h桥接文件本体
首先要通过File->new->file或者直接Command+N创建一个普通的.h文件。
1.2设置桥接文件路径
新建好了文件之后,编译器还无法知道你这个文件就是桥接文件,我们需要设置来告知一下。
在Targets里面的Build Setting中找到应该修改的位置(搜索"bridging"),直接拖动你刚才创建好的头文件到对应的位置的空白处,xcode会给你写好对应的路径,点击回车就可以了。
2.在Swift中使用oc的类
在创建好的桥接文件中,引入你要使用的oc的头文件,就可以在Swift文件中使用oc的类了。
3.在oc中使用Swift类
那么你写好的Swift类怎么在oc中使用呢?
也很简单,首先导入头文件。
#import "项目名称-Swift.h"
当然如果你的项目名有中文或者别的原因让你觉得看着别扭,没关系,我们可以改掉它。
3.1
在Targets->Build Setting中找到下图中的两项(搜索"pack"),第一项是允许混编,第二项就可以修改引入时的文件名称了。
3.2
修改好之后就可以把原来的项目名替换掉了。
4.结语
这样,就可以在oc的文件中调用Swift的类了,编译一下,就可以运行了。