1.'@objc' instance method in extension of subclass of 'xxx' requires iOS 13.0.0
需要把實現(xiàn)從擴展移到主類實現(xiàn)献起。iOS13一下擴展不支持@objc
2.using bridging headers with framework targets is unsupported 報錯
這個錯誤通常指的是在一個框架目標中使用橋接頭是不支持的洋访。在Xcode 11以后的版本中砰诵,使用模塊化編程的方式進行開發(fā)成為了推薦的方式,而橋接頭只能在非模塊化的代碼中使用捌显。
如果你需要在框架中使用Objective-C代碼茁彭,可以考慮使用模塊接口(module interface)代替橋接頭文件。模塊接口文件是一個描述框架接口的文件扶歪,它會自動將Objective-C代碼導入到Swift中理肺。
你可以使用以下步驟來替換橋接頭文件:
創(chuàng)建一個名為module.modulemap的文件,并將其添加到框架的根目錄中善镰。
在module.modulemap文件中添加以下內容:
frameworkmodule {? umbrella header"<FrameworkName>.h"export*module* {export* }}
其中妹萨,<FrameworkName>是框架的名稱,將其替換為你的框架名稱炫欺。
將Objective-C頭文件添加到umbrella header指令所指定的頭文件中乎完。例如,如果你的框架名稱是MyFramework品洛,則需要將所有Objective-C頭文件添加到MyFramework.h文件中树姨。
在Swift代碼中導入你的框架。
importMyFramework
通過使用模塊接口來代替橋接頭文件桥状,你可以在Swift中更方便地使用Objective-C代碼帽揪,而無需擔心橋接頭文件的限制。