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的可选属性。

《Object-C 和 Swift 项目混编》 SwiftModel.swift

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

《Object-C 和 Swift 项目混编》 bridging Header
《Object-C 和 Swift 项目混编》 OC项目-Bridging-Header.h

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

《Object-C 和 Swift 项目混编》 ViewController.m

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

《Object-C 和 Swift 项目混编》 OC项目-Swift.h

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

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

《Object-C 和 Swift 项目混编》 OCModel.h

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

《Object-C 和 Swift 项目混编》 OC项目-Bridging-Swift.h

      在 Swift 类里调用 Object-C 代码

《Object-C 和 Swift 项目混编》 SwiftViewController.swift

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

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

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

《Object-C 和 Swift 项目混编》 创建桥接文件

其次,配置桥接文件路径

《Object-C 和 Swift 项目混编》 配置桥接文件

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

    原文作者:onefboy
    原文地址: https://www.jianshu.com/p/c6adc79a00f9
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞