310,Object-C 和 Swift 项目混编

Object-C 和 Swift 项目混编分为两种情况:

第一种:在 Object-C 创建的项目中混编 Swift 代码
第二种:在 Swift 创建的项目中混编 Object-C 代码

在实际使用中,两种方式的具体实现一样,比如:在 Object-C 类中调用 Swift 类,或者在 Swift 类中调用 Object-C 类,这个在两种工程中是一样的。下面就以 Object-C 项目为例。

Object-C 项目混编 Swift 代码

第一步:在 Object-C 创建的项目中新建一个 Swift 类,并创建一个类型为String名字为name的可选属性。

image.png

如果你是第一次在工程中创建 Swift 类,工程会提示你是否需要创建 Objective-C bridging header,这个就是所谓的桥接文件。点击 Create Bridging Header,此时会在你的工程中多出一个文件(文件命名规则是:工程名-Bridging-Header.h)

image.png
image.png

第二步:在 Object-C 类中调用刚才创建的 Swift 类。首先需要在调用 Swift 代码的类中导入 Swift 头文件,这个是固定写法(规则是:工程名-Swift.h),然后就可以调用我们刚才的 Swift 代码了。

image.png

按住 Command 用鼠标点击 "OC项目-Swift.h" 头文件,我们可以看到 Xcode 把我们刚才的 Swift 代码转换成了 Object-C代码,所以在我们需要用到 Swift 代码的类中导入这个文件就可以了。

image.png

第三步:在 Swift 类中调用 Object-C 代码,这个时候就用到了桥接文件,如果你想在 Swift 代码里调用 Object-C 代码,那么你就需要在桥接文件里声明 .h 头文件。

首先创建一个 Object-C 类用于在 Swift 类中调用

image.png

在桥接文件里声明我们需要调用类的 .h 文件(头文件)

image.png

在 Swift 类里调用 Object-C 代码

image.png

第一步中,当我们第一次创建 Swift 类时,系统会提示:Would you like to configure an Object-C bridging header? 如果我们点了 Don't Create 那就没有桥接文件了,那怎么办?

我们可以手动创建桥接文件

首先,创建桥接文件(文件命名规则是:工程名-Bridging-Header.h)

image.png

其次,配置桥接文件路径

image.png

至此,桥接文件创建成功。

你可能感兴趣的:(310,Object-C 和 Swift 项目混编)