本人在接入猴子测试的过程中。需求使然。需要对OC集成swift代码进行混编。


一  先说如果是OC混编Swift的情况

1. 首先创建一个名称为BridgeTest的项目,语言选择Object-C。


创建项目

2.如果我们想在OC的项目中嵌入Swift项目,是需要一个桥接(Bridge)文件。桥接文件有两种创建方式见图片

    2.1.方式一 直接新建一个swift文件,会默认帮我们创建一个桥接文件


方式一


2.2 方式二 当你直接拖入swift文件的时候,如果xcode没有自动帮我们创建这个桥接文件。我们可以自己手动创建一个Bridge.h(名字可以随便,最好有bridge标识)的文件,我们以一个新项目BridgeTest2为例

⚠️ 需要注意的是  /Users/xxzx/Desktop/BridgeTest2/BridgeTest2/Bridge.h 直接拖的路径,和pch文件类似,我们只需要BridgeTest2/Bridge.h这部分即可(可以防止由于文件路径变化,项目拷贝或多人开发所导致的文件路径找不到的问题)


方式二

3. 此时已经将桥接文件准备完毕。这时候需要知道的是如果我们想要用swift文件的内容,Xcode会默认帮我们生成 ( 项目名称-Swift.h)  的文件,不会有提示。在需要接入的地方直接手敲即可


3

4. 这时候我们就可以正常的OC文件中调用swift文件


4

5. 当我们如果是混编而不是采用第三方的时候,我们也需要写swift文件。这个时候就要用到swift调用OC文件的情况。我们需要先在桥接文件中导入swift文件中需要的OC文件即可(⚠️是.h文件)


5


这种方式的坑比较多,不建议采用。我是在需要进行压力测试的时候才这样搞的。

二  下面说Swift混编OC的情况的情况

这种就比较简单了,我们创建一个基于swift语言开发的项目。需要注意⚠️的地方同上第2步的方式去做。剩下的就是文件的相互调用了