swift和OC混編報錯問題

1.'@objc' instance method in extension of subclass of 'xxx' requires iOS 13.0.0

需要把實現(xiàn)從擴(kuò)展移到主類實現(xiàn)。iOS13一下擴(kuò)展不支持@objc

2.using bridging headers with framework targets is unsupported 報錯

這個錯誤通常指的是在一個框架目標(biāo)中使用橋接頭是不支持的。在Xcode 11以后的版本中,使用模塊化編程的方式進(jìn)行開發(fā)成為了推薦的方式,而橋接頭只能在非模塊化的代碼中使用。

如果你需要在框架中使用Objective-C代碼,可以考慮使用模塊接口(module interface)代替橋接頭文件。模塊接口文件是一個描述框架接口的文件,它會自動將Objective-C代碼導(dǎo)入到Swift中。

你可以使用以下步驟來替換橋接頭文件:

創(chuàng)建一個名為module.modulemap的文件,并將其添加到框架的根目錄中。

在module.modulemap文件中添加以下內(nèi)容:

frameworkmodule {? umbrella header"<FrameworkName>.h"export*module* {export* }}

其中,<FrameworkName>是框架的名稱,將其替換為你的框架名稱。

將Objective-C頭文件添加到umbrella header指令所指定的頭文件中。例如,如果你的框架名稱是MyFramework,則需要將所有Objective-C頭文件添加到MyFramework.h文件中。

在Swift代碼中導(dǎo)入你的框架。

importMyFramework

通過使用模塊接口來代替橋接頭文件,你可以在Swift中更方便地使用Objective-C代碼,而無需擔(dān)心橋接頭文件的限制。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容