一、新建一个OC工程,工程名称自定,在这里我定义为OCAndSwiftDemo,如图:

二、在新建Swift类之前,进行相关设置,如图:

三、在项目中,新建一个TestDemo的swift类,如果Swift类想要被OC发现,必须继承自NSObject,点击Create后,提示如图

选择Create Bridging Header,一定要选择这个,如果不选择,就引入不了Swift类,然后生成”项目名称-Bridging-Header.h”桥接文件,然后编辑Swift类,如图:【oc调用swift: 需要在暴露出来的方法和属性上加@objc否则不可用】

四、调用Swift类,我们想要调用Swift类的方法里面引入头文件:”项目名称-Swift.h”,如图:

这里#import "OCAndSwiftDemo-Swift.h"的OCAndSwiftDemo是在配置中设置的product Name,如下图:

最后:
如果没有弹出是否创建桥接文件的提示框,则进入配置工程里看看此处是否为空,如果不是空的,就删掉,因为是否创建桥接文件只会弹出一次,若你已经选择了一次not create,则下次不会再提示,想要再次创建桥接文件需在这里将设置清空,再从1开始。如图:

swift引用oc,如在TestSwift中要引用ViewController这个类,
1.跟上面1-4步骤一样:
2.在桥接文件里引入要引用的OC类的头文件,

3.在TestSwift文件里进行引用

网友评论