一、混编的方式
iOS混编有如下两种方式:
- Swift调用ObjC
- ObjC调用Swift
二、混编的场景
一般企业的iOS项目都是基于Cocoapods实现的组件化工程,混编的场景有如下三种:
- 工程中
- 组件内
- 组件间
三、混编的具体实现
3.1 Swift调用ObjC
- 工程中 将ObjC的头文件导入到桥接头文件中
- 组件内 将ObjC的头文件导入到umbrella-header文件中
- 组件间 import module
3.2 ObjC调用Swift
- 工程中 引入 Swift Module 的 ObjC Interface Header,默认是"ProjectName-Swift.h"
- 组件内 引入 Swift Module 的 ObjC Interface Header,默认是"ModuleName-Swift.h"
- 组件间 @import module;
注意: Swift的类或者方法要暴露给ObjC使用,访问权限至少是public的,切需要添加@objc