swift oc 混合编程

最近在学习Swift,写了一段时间之后感觉要比OC代码量少很多,而且简洁很多,但是基于目前公司大部分项目还是在使用OC开发,就涉及到OC和Swift的混合开发了,今天就自己这段时间了解的做个总结:

1.建立一个Swift工程:

swift oc 混合编程

如上我在工程中添加了OC文件以及Swift文件,在添加OC文件时会提示是否创建桥接文件:

swift oc 混合编程

选择Finish这在后面swift调用OC文件时要使用,

其实在我们创建Swift工程时Xcode默认会给我们生成xxxx-Swift.h文件,这个文件就是为了方便我们在OC中调用Swift而准备的。

2.文件已经创建完成,我们可以开始试一下互相调用了:

a)若OC文件需要在Swift中使用,我们只需要在桥接文件中引入需要调用的方法.h文件即可:

swift oc 混合编程

#import "TestOCFile.h"文件内容如下:

swift oc 混合编程


这样就可以在Swift文件中使用OC了,调用方式就按照Swift的语法使用即可:

swift oc 混合编程

b)在OC中使用Swift方法,这时候要注意了,类似于OC的.h文件暴露头文件一样,那个Swift文件需要提供给OC调用则需要定义该类为Public类型以及方法也为Public类型,如上图。在OC中调用时,需要引入xxx-Swift.h文件,需要告诉OC文件那些方法是可被调用的:

swift oc 混合编程

这就是整个OC和Swift混编的工程,我们可以看一下xxx-Swift.h文件有哪些东西,注意看下面一部分,该部分就是我们定义的Public部分:

swift oc 混合编程

xxx-swift.h文件中已经转换成了OC的调用方式。