swift和OC混编报错问题

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

需要把实现从扩展移到主类实现。iOS13一下扩展不支持@objc

2.using bridging headers with framework targets is unsupported 报错

这个错误通常指的是在一个框架目标中使用桥接头是不支持的。在Xcode 11以后的版本中,使用模块化编程的方式进行开发成为了推荐的方式,而桥接头只能在非模块化的代码中使用。

如果你需要在框架中使用Objective-C代码,可以考虑使用模块接口(module interface)代替桥接头文件。模块接口文件是一个描述框架接口的文件,它会自动将Objective-C代码导入到Swift中。

你可以使用以下步骤来替换桥接头文件:

创建一个名为module.modulemap的文件,并将其添加到框架的根目录中。

手搓文件,随便整个更改名称即可

在module.modulemap文件中添加以下内容:

frameworkmodule { umbrella header".h"exportmodule {export* }}

其中,是框架的名称,将其替换为你的框架名称。

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

在Swift代码中导入你的框架。

importMyFramework

通过使用模块接口来代替桥接头文件,你可以在Swift中更方便地使用Objective-C代码,而无需担心桥接头文件的限制。

参考资料:https://www.jianshu.com/p/08e36574855b

相关推荐
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
伞伞悦读1 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车1 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁1 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
孙启超1 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int1 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
CoderYanger1 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
茶底世界之下1 天前
为什么预览、录制、离线导出不能共享同一个背压策略?
ios·swift
2501_916007471 天前
苹果商店iOS应用上架费用全面解析:开发者计划与审核费用计算
android·ios·小程序·https·uni-app·iphone·webview
伞伞悦读1 天前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json