一、混編的方式
iOS混編有如下兩種方式:
- Swift調(diào)用ObjC
- ObjC調(diào)用Swift
二、混編的場(chǎng)景
一般企業(yè)的iOS項(xiàng)目都是基于Cocoapods實(shí)現(xiàn)的組件化工程,混編的場(chǎng)景有如下三種:
- 工程中
- 組件內(nèi)
- 組件間
三、混編的具體實(shí)現(xiàn)
3.1 Swift調(diào)用ObjC
工程中
將ObjC的頭文件導(dǎo)入到橋接頭文件中組件內(nèi)
將ObjC的頭文件導(dǎo)入到umbrella-header文件中(pod install后自動(dòng)添加,無(wú)需任何處理)組件間
import module
3.2 ObjC調(diào)用Swift
工程中
引入 Swift Module 的 ObjC Interface Header,默認(rèn)是"ProjectName-Swift.h"組件內(nèi)
引入 Swift Module 的 ObjC Interface Header,默認(rèn)是"ModuleName-Swift.h"組件間
@import module;
注意:
Swift的類或者方法要暴露給ObjC使用,訪問(wèn)權(quán)限至少是public的,且需要添加@objc