oc swift 混编

2023-11-02

oc 和 swift 互调

swift 中使用 oc

swift 中调用 oc 的类

创建一个oc的项目,在项目里创建swift文件的话,Xcode会自动提示,要不要创建桥接文件,如下图所示:

在这里插入图片描述

选择Create Bridging Header,会生成一个工程名-Bridging-Header.h 的桥接文件,并且在Buding Setting -> Swift Complier 下添加好文件路径的配置,如下图:

在这里插入图片描述
当然如果不选择创建此文件的话,我们手动创建并配置路径也是可以的。

将 swift 需要使用的 oc 的类的头文件添加到 xxx-Bridging-Header.h 中,然后就可以在 swift 中使用oc的类了,如下:

引用 oc 的类到桥接文件中
在这里插入图片描述
在swift 中使用 oc 的类
在这里插入图片描述

oc 调用 swift

oc的类中使用swift类

  1. public

将 swift 的类,方法等都改成public 的

  1. @objcMembers

需要在swift类的定义前加上 @objcMembers

在这里插入图片描述

  1. 引swift类头文件

直接在 oc 文件中是找不到 swift 文件的,如下
在这里插入图片描述
oc 中调用 swift 文件,只需要引头文件 工程名-Swift.h 即可,如下

在这里插入图片描述
如果引入头文件 #import “PersonalController.swift” 的话,PersonalController里会报 Expected ';' after top level declarator 的错误

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oc swift 混编 的相关文章

随机推荐

  • anaconda切换为国内源

    查看配置文件 conda config show windows下 1 添加清华源 命令行中直接使用以下命令 conda config add channels https mirrors tuna tsinghua edu cn anac
  • Unity3d 物体速度快直接穿透墙体没有发生碰撞怎么办?

    1 Edit gt Project Setting gt Time 调节TimeManager的fixed Timestep
  • 如何在Linux虚拟机或服务器上发布或部署一个Spring项目

    1 开放端口 项目需要使用哪些端口就开放哪些端口 开放方法如下 1 进入控制台 选择安全组 2 点击蓝色连接 点击手动添加 3 添加需要开放的端口 2 安装服务器远程连接工具 Xshell 的安装使用 Xshell是一个终端模拟软件 换言之
  • stm32 USB HID单点触摸屏上报安卓触摸信号

    此工程在个人博客使用stm32配置自定义的HID设备基础上修改 在上个博客中我们介绍了如何使用stm32配置成自定义的HID设备 使用usb通讯 但是仅仅只是实现了基于USB的通讯 真正需要运用的时候还需要在此基础上定义我们自己的协议 然后
  • Unity接入越南社交软件Zalo登录之获取用户信息

    根据Unity接入越南社交软件Zalo登录 Android 之SDK接入接入SDK后 需要获取用户name id 头像 性别的信息 这一篇文章教你如何获取 根据官网文档获取用户信息API ZaloSDK Instance getProfil
  • CPU和线程概述、线程池如何合理设置

    目录 1 物理核 虚拟核 单核cpu和多核cpu 2 进程和线程 理解 对比 线程切换 线程开销 3 串行 并发 并行 串行 并发 并行 4 多核下线程数量选择 计算密集型 IO密集型 提高性能的方向 5 并发编程网上关于线程池的总结 参考
  • PAT A1039使用string也可以不超时!!!

    亲测 直接使用map
  • AJAX & Axios 总结

    AJAX Axios 1 AJAX 1 1 作用 与服务器进行数据交换 异步交互 异步和同步 1 2 基本使用 1 3 案例 SelectUserServlet register html register html中的
  • 层层逼近,了解Norm系需要解决的问题及其衍生变体

    引自 https zhuanlan zhihu com p 33173246 https blog csdn net xiao lxl article details 72730000 https github com switchable
  • linux audit日志通过syslog转发到远端

    流程 开启audit 配置rsyslog读audit log文件 转发到远端 1 开启audit 重启audit service auditd restart 确认audit log产生日志 cat var log audit audit
  • filebeat-sidecar模式采集pod应用日志

    文章目录 1 将镜像上传服务器 2 新增sidecar yml文件 3 kubectl部署应用 部署应用 查看应用部署情况 查看pod运行情况 查看容器 应用服务 运行情况 查看容器 filebeat 运行情况 查看pod日志 4 kafk
  • Linux内核设计与实现(五)

    文章目录 什么是内核同步 1 临界区和竞争条件 2 加锁 2 1 造成并发执行的原因 2 2 了解需要保护什么 3 死锁 4 争用和扩展性 内核同步方法 1 原子操作 1 1 原子整数操作 1 2 原子位操作 2 自旋锁 2 1 自旋锁方法
  • 时序预测

    时序预测 MATLAB实现基于TSO XGBoost金枪鱼算法优化XGBoost的时间序列预测 多指标评价 目录 时序预测 MATLAB实现基于TSO XGBoost金枪鱼算法优化XGBoost的时间序列预测 多指标评价 预测效果 基本介绍
  • java+selenium环境搭建

    目录 1 写在前面的话 2 下载谷歌驱动 3 添加Selenium依赖 我这里添加的是4 0 0版本的 4 在操作过程中可能出现的问题 解决办法 目录 1 写在前面的话 2 下载谷歌驱动 3 添加Selenium依赖 我这里添加的是4 0
  • MTK 平台Camera 驱动架构

    记录下 Mtk的Hal3架构笔记 正在进行学习 后续仍会更新 一 MtkCam3的代码结构及学习资料 mtk online里搜Camera 可以搜到很全面的Mtk Hal3的学习文档 Mtk整理的文档很棒 简单到位 https online
  • 嵌入式(线程的取消和互斥)

    线程的取消 意义 随时杀掉一个线程 int pthread cancel pthread t thread 注意 线程的取消要有取消点才可以 不是说取消就取消 线程的取消点主要是阻塞的系统调用 运行段错误调试 可以使用gdb调试 使用gdb
  • Linux之进程组、守护进程

    转自 https blog csdn net happiness llz article details 82749105 进程组 概念和特性 进程组 也称之为作业 BSD于1980年前后向Unix中增加的一个新特性 代表一个或多个进程的集
  • 序列密码,最安全的密码体制

    序列密码体制是理论上最安全的密码体制 因为Shannon证明了一次一密密码体制是绝对安全的 每个字节明文都对应这一个字节的密钥 而序列密码的设计就是基于此而设计 序列密码 明 文 密 文 密
  • Mysql可变长度列VARCHAR、BLOB和TEXT问题

    在对这些可变长度类型的列进行大量的增删后可能会出现碎片 建议定期执行 OPTIMIZE TABLE 表名 以优化性能 但以上命令只对MyISAM BDB和InnoDB存储引擎的表生效 以下方式也可以优化innodb存储引擎的表中的碎片 al
  • oc swift 混编

    oc 和 swift 互调 swift 中使用 oc swift 中调用 oc 的类 创建一个oc的项目 在项目里创建swift文件的话 Xcode会自动提示 要不要创建桥接文件 如下图所示 选择Create Bridging Header