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的可选属性。
SwiftModel.swift如果你是第一次在工程中创建 Swift 类,工程会提示你是否需要创建 Objective-C bridging header,这个就是所谓的桥接文件。点击 Create Bridging Header,此时会在你的工程中多出一个文件(文件命名规则是:工程名-Bridging-Header.h)
bridging Header OC项目-Bridging-Header.h第二步:在 Object-C 类中调用刚才创建的 Swift 类。首先需要在调用 Swift 代码的类中导入 Swift 头文件,这个是固定写法(规则是:工程名-Swift.h),然后就可以调用我们刚才的 Swift 代码了。
ViewController.m按住 Command 用鼠标点击 "OC项目-Swift.h" 头文件,我们可以看到 Xcode 把我们刚才的 Swift 代码转换成了 Object-C代码,所以在我们需要用到 Swift 代码的类中导入这个文件就可以了。
OC项目-Swift.h第三步:在 Swift 类中调用 Object-C 代码,这个时候就用到了桥接文件,如果你想在 Swift 代码里调用 Object-C 代码,那么你就需要在桥接文件里声明 .h 头文件。
首先创建一个 Object-C 类用于在 Swift 类中调用
OCModel.h在桥接文件里声明我们需要调用类的 .h 文件(头文件)
OC项目-Bridging-Swift.h在 Swift 类里调用 Object-C 代码
SwiftViewController.swift第一步中,当我们第一次创建 Swift 类时,系统会提示:Would you like to configure an Object-C bridging header? 如果我们点了 Don't Create 那就没有桥接文件了,那怎么办?
我们可以手动创建桥接文件
首先,创建桥接文件(文件命名规则是:工程名-Bridging-Header.h)
创建桥接文件其次,配置桥接文件路径
配置桥接文件至此,桥接文件创建成功。
网友评论