简述OC与Swift的混编

最近遇到OC和Swift的混编问题,就查找了一下资料,发现众说纷纭,在此总结一下自己亲测的用法,可能与其他稍有出入,欢迎指正评论。

一、OC中注入Swift代码

1、首先须标明告知编译器,可以使用Swift代码,续作以下操作

build Setings 搜索embed ,将下图所标选选项设置为YES

简述OC与Swift的混编_第1张图片

build Setings 搜索defines mode 将箭头所指的项设置为YES

简述OC与Swift的混编_第2张图片

2、设置完上述选项后,将需要使用的Swift代码文件直接拖入工程,切记Swift文件中的类与方法名若是需要外部调用,都需要是public访问权限,否则将无法正常访问,拖入时会有下边所示的提示

简述OC与Swift的混编_第3张图片

点击finish后

简述OC与Swift的混编_第4张图片

直接点击Create Bridging header,此时工程中会多出一个 工程名-Bridging-Header.h的文件,此文件一定不要修改,否则无法编译通过

使用Swift中的类与方法,只需在需要使用的OC的文件中导入 工程名-Swift.h的头文件,你就可以像调用OC类一样使用Swift中的代码了,需要注意的是,工程名-Swift.h的头文件是系统自主创建的,没有暴漏到工程中,但是我们按住command + 点击头文件,还是可以看到内部实现的

简述OC与Swift的混编_第5张图片

此处截取一小部分都是一下转化桥接。

二、swift中调用OC的代码

swift中调用OC的代码,个人亲测,相对简单一些,自己所需做的工作也是很少,只需将所需的OC代码拖入Swift工程,点击finish -》Create Bridging header,此时工程会自动生成工程名-Bridging-Header.h的头文件,需要将所需的OC的头文件导入 工程名-Bridging-Header.h的头文件中,即可正常使用

简述OC与Swift的混编_第6张图片

在需要使用的地方就可以直接使用了,无需导入相应头文件。

第一次写这东西,就这些吧,亲测可用,可能与大神们使用方法有些不同,欢迎指正交流!!!


参考:

http://ju.outofmemory.cn/entry/118111

http://www.cnblogs.com/kenshincui/p/4824810.html

你可能感兴趣的:(简述OC与Swift的混编)