swift和OC混编报错问题

swift sdk 项目内嵌OC sdk项目时 swift无法调用oc sdk swift 的SDK内嵌一个OC的SDK时无法使用bridgingHeader时的解决办法 阅读详情
AI摘要

本文讲述了在iOS13及以上版本中,如何将Objective-C实例方法从扩展移到主类实现,以及在模块化开发中弃用bridgingheaders,改用moduleinterface解决框架中Objective-C与Swift交互的问题。介绍了如何创建module.modulemap文件并导入Objective-C头文件以在Swift中无缝使用Objective-C代码。,

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

iOS UMeng OC和Swift混编 设置Objective-C桥接文件导入SDK头文件在UMengDemo-Bridging-Header.h中加入U-Share SDK头文件://导入UMCommon的OC的头文件//导入UShare的OC的头文件//导入UMAnalytics的OC的头文件//导入UMPush的OC的头文件UMengDemo的OC和Swift的切换UMengDemo是用OC的代码编写的,同时也兼容了swift3.0的调用示例(UMengDemo不再对swift2.0做示例兼容). 阅读详情

相关推荐

OC和Swift的桥接

首次使用Markdown编写博客,尚在熟悉中。既然markdown支持HTML,那就暂且用HTML书写,回顾下淡忘的html标签。 首先创建一个swift工程,然后准备一个Swift类RedView和一个OC类BlueView相互桥接互用。 Swift调用OC类 方法一   直接新建一个oc类,如下图:   继续点击,出现

MayerF的专栏 4384

swift创建桥接文件_Swift tip:在 Framework 中使用桥接头文件

我现在编写 iOS 和 Mac 程序,绝大部分都采用 Swift 了,越来越少使用 Objective-C。但现存很多库是使用 Objective-C 编写的。这样不可避免遇到 Swift 和 Objective-C 的混编问题。假如编译目标是 App,让 Swift 调用 Objective-C 会很简单。只需要在工程中设置一个桥接头文件,之后在这个头文件中包含 Objective-C 的头文件...

weixin_39883065的博客 521

oc调用swift

OC调用Swift 如果你想在Objective-C工程中,嵌入Swift文件,实现OC调用Swift,那么这篇文章就能帮助你,由于本人最近在开发Swift项目,所以实现过OC调用Swift,在这过程中遇到过一些瓶颈,特此,将此文奉上,供大家参考。 OC调用Swift文件,需要创建桥接头文件,这个文件是当你在OC开发环境中创建Swift文件时由Xcode生成,该桥接头文件的命名是:-B

Xiao_Long_Li的专栏 2137

iOS很坑的error:

iOS错误如下 error: using bridging headers with module interfaces is unsupported 仔细看好错误类型,是关于swift混合编译问题 解决办法 完美解决,不知道怎么看build setting吗? 打开build setting的方法,其实就是双击building错误的那个模块即可打开build setting。 ...

qq_44159782的博客 4785

swift中使用OC的方法;在OC中调用swift方法

swift中使用OC的方法;在OC中调用swift方法

wj748499404的博客 5327

iOS 快速从OC过渡到Swift,由理论到实战-OC和Swift混编

接上篇文章:iOS 快速从OC过渡到Swift,由理论到实战-Swift基础 OC和Swift混编 a. Swift 和 OC 的映射关系 Swift 兼容来大部分 OC,当然还有一些 Swift 不能够使用的,例如 OC 中的预处理指令,即宏定义不可使用,虽然在目前4.2版本下,已经开始支持了少量的宏,如 #if DEBUG #else #endif 这种简单的预处理指令。...

马甲包开发审核交流群:869685378 1662

Swift-Framework Error(一)桥接文件

摘要 Xcode 编译工程代码时,出现编译错误时除了红色图标外,还会附送几句英文文本。 常规操作拷贝英文文本,放到搜索框中找答案,但是读懂这几句话能事半功倍。 项目中如果有 OC 和 Swift 两种语言的代码,那么桥接文件(xx-Bridging.h)必然是要创建的,它作为桥梁,使得项目中的 OC 和 Swift 代码直接自由调用。对桥接文件感兴趣,给我留言,一定详细解答 错误 但是这种处理方式放到 Framework 中就失效,报错并返回 Error: using bridging headers .

我为双鱼狂 2308

oc的接口、类、枚举对swift的重命名和隐藏

oc的接口、类、枚举对swift的重命名和隐藏

Dream_Dynasty的博客 1529

排雷记录:Swift +Objective-C混合Framework的一些问题

对于Swift的出现,估计很多公司很多人都面临着原有开发框架的更新换代,Swift经过一年的发展,到现在2.1版,显而易见的大坑填的差不多了,算是基本堪以大用了,这场景让我恍惚回到使用.Net 2.0架构软件系统的年代,都是刚算够上堪以大用,可以引入企业级开发了,可以考虑构建稳固版本计划和投入资源实施了。 现在问题场景是很多原有Framework,都是基于OC的,其中Framework积累大

cooldragon的专栏 1万+

swift-oc-bridging:在 swift framework 中引用c、oc、c++ 文件

swift-oc-bridging 在 swift framework 中引用c、oc、c++ 文件

set_data_check专题[使用,report_timing,setup/hold检查]

set_data_check用于约束『数据-对-数据』的『建立保持』时间检查,通常被称为非时序约束 ( non-sequential constraints ), 理论上set_data_check 可以设在任意的两个data pin 上,其中一个pin 称为 constrained pin 类似于寄存器的data pin, 另一个pin 称为related pin 类似于寄存器的clock pin.

cy413026的博客 1万+

OC和Swift混编相互调用

现在咱们就一起学习下 OC和Swift混编,如何实现呢? 首先创建一个OC项目 这里不在做详细解释,直接进入 打开项目; 一 、添加swift 文件 (只要是混编 无论是在oc项目中添加swift文件 ,还是swift项目中添加oc文件) 会提示添加一个桥文件 名字为oc_swift-Bridging-Header.h下面都用这个名字(如图) 这个时候 我们只需要点击确定即可; 这个桥文件是用来添加 swift使用oc的时候导入头文件使用的 扩充 — 这个文件oc_swift-Bridging-Head

哈皮吖的博客 5468

华为AR3260路由器NAT回流配置实战:从WEB界面到命令行的完整避坑指南

本文详细解析了华为AR3260路由器NAT回流(Hairpin NAT)的配置原理与实战方法。针对内网用户无法通过公网地址访问内部服务器的常见问题,文章不仅剖析了WEB界面配置的常见报错原因,更提供了清晰、可靠且一劳永逸的命令行(CLI)配置方案与排错指南,帮助企业网络工程师彻底解决内外网访问不一致的难题。

u6v7w8x的博客 874

15、OC与Swift的混编

在使用Swift进行iOS开发的过程中,经常涉及到Swift与OC混编的情况,有时主工程是OC的需要另外编入Swift代码,而有时主工程是Swift的需要另外编入OC代码。这其中涉及到修改一下XCode的工程配置。 1、在同一个工程中的混编 在Swift 5.1中,两种混编的实现步骤: Swift访问OC:只需要在桥接文件(ProductName-Bridging-Header.h)中导入需要暴露给Swift的OC类,即可在Swift中访问相应OC类及方法。 OC访问Swift:在OC类中导入Pro

重楼的博客 3584

TC397 EB配置ADC软件触发:从零实现周期采样与中断处理

本文详细介绍了如何在Infineon AURIX TC397芯片上使用EB Tresos工具配置ADC软件触发,实现周期采样与中断处理。通过硬件连接、EB模块配置、代码初始化及数据处理的全流程解析,帮助开发者快速掌握ADC软件触发技术,提升嵌入式系统开发效率。

root9的博客 234

AutoSAR系列讲解(入门篇)2.2-SWC的类型

该章讲解了两种SWC的分类,并且映射到实际的工程中应该是具体的什么文件类型

雪云飞星的博客 4万+

swift和oc枚举的区别

swift 1.case后面可以用逗号隔开写很多枚举值 2.枚举里可以写方法 3.枚举的rawValue可以是Float(float也是赋值的后面依次+1)或是String,或是没有 enum Suit{ case spades, hearts, diamonds, clubs func simpleDescription() -> String { switch self { case .spades: return "spa

baidu_40537062的博客 3117

数据结构课程设计C/C++版--美团餐馆预定信息的管理与分析 5 6

第5关:注销个人信息。

m0_62222486的博客 2129

oc分类和swift扩展有哪些区别

特性Objective-C 分类Swift 扩展作用对象仅 Objective-C 类类、结构体、枚举、协议存储属性❌(需关联对象模拟)❌计算属性❌✅方法覆盖⚠️ 允许(有风险)❌ 编译禁止协议默认实现❌✅泛型支持❌✅(通过**where**子句)安全性低(运行时冲突)高(编译时检查)需动态添加属性/覆盖方法 →Objective-C 分类(需谨慎)。需类型安全/添加计算逻辑/扩展协议 →Swift 扩展。

chenzimin_blog 1112

Vue3 - [最强] 超详细 Element Plus 组件库主题颜色进行 “统一全局“ 替换,将默认的蓝色主题色更换为其他自定义颜色,覆盖原来的主题色改为自己的颜色(完美解决主题色不生效、没反应)

elementplus修改主题色,vue3+element-plus主题色更换,vue3vite如何修改扩展elementplus主题色样式,全局设置elementplus主题色,有什么办法可以直接全局修改主题色,对elementplus默认蓝色不满意怎么替换更改其他颜色,elementplus覆盖默认主题色,elementplus主题色官方文档,vue3中修改elementplus主题色,elementplus修改主题色不生效怎么办,elementplus如何修改主题颜色,eleme

🏆 前端领域优质创作者 1万+

小米15修复“NV损坏” 去除主板校验电阻步骤解析与图示

小米15系列将搭载骁龙8至尊版处理器,采用台积电3nm工艺。文章分析了手机出现"NV损坏"故障的表现及修复方法,包括通信异常、系统启动问题等典型症状,并介绍了去除主板校验电阻和刷写工程固件两种修复方案。重点讲解了去除主板电阻后刷写QCN文件的操作流程,强调在维修过程中需要结合分析与思考。适用于小米15系列特定机型(24129PN74G/I/C)的硬件修复。

小马哥的专栏 315

OC和Swift混合开发(Pod私有库的相互引用)

概述 该文档整理OC和Swift混合开发相互调用,包括3大类情况和12种具体情形。1. 主工程内的混合互调,2. 主工程和Pod三方库之间的混合互调,3. Pod三方库和其他Pod三方库之间的混合互调。#import "NSObject.h" 导入头文件直接调用。 1. 主工程中创建.pch文件,在TARGETS -> Build Setting -> 搜索pch -> 设置.pch文件的路径, 2. 在.pch文件中添加 : 例如:#import "xxxxx_Swift.h"

M_baronJJ的专栏 6801

工业相机的检测原理课件(建议收藏)

本课件为各位工程师详细介绍了工业相机的视觉检测原理 ,旨在为工程师调试工业相机的视觉检测原理时提供理论性指导。

Bamboo265925的博客 498

OC和Swift混编(一)——OC与Swift相互调用

WWDC推出了SwiftUI、Combine,仅Swift可用~为了能顺利的也吃上SwiftUI,我也打算将自己的项目先从OC慢慢迁移到Swift,所以~一起从混编开始! 创建Swift的view 正常创建文件,语言选swift 创建Bridging Header 上一步,点完next,系统会提示如下弹框。点create Bridging Header oc使用Swift文件 导入头文件,在...

weixin_34150224的博客 1211

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

OC与Swift混编注意点

创建一个OC新工程 在其中创建一个Swift的文件 生产的test-Bridging-Header.h 为OC桥接文件 ,Xcode会自动配置 配置使OC能调用swift类 然后在需要调用swift类的地方加上头文件格式为:$(TARGET_NAME)-Swift.h 注意:有些时候会报此文件找不到的错误,那是因为工程名对应不上,具体查看这里设置 例如 test-a工程对应就会为te...

quanhaoH的专栏 4995

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

用Swift与OC混编制作iOS8风格菜单

开篇 a

ryaness的专栏 939

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: Wireshark抓包报错You do not have permission to capture on device
下一篇: [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent c
iOS_MingXing
博客等级 码龄11年 103粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值