OC代码中使用Swift文件的实践

2023-05-16

最近在研究swift,就我看来,swift确实是比OC更优秀的语言,这可以体现在很多方面,网上已经对比的很透彻,就不一一赘述。
今天研究了一下如何在OC项目中使用swift文件,即OC和swift的混编问题,发现在OC中要使用swift文件也是蛮简单的,实践过程列如下:
1)首先随便创建了一个OC项目,就叫 DetialViewDemo
这里写图片描述
2)因为Swift的代码默认是使用module管理的,所以两者混编的最重要的一步,就是把我们的Swift代码作为一个module暴露给OC工程,具体步骤如下:
这里写图片描述
3)创建一个swift文件或者将已有的swift文件拖入项目中,我这里是拖入了一个练习swift写的一个类:
这里写图片描述
注意点:swift文件添加的时候会提示是否添加桥接文件,直接点击不创建就OK
4)好了,文件都准备好了,接下来就需要在使用到swift文件的类中引入”Product Module Name-Swift.h”,其中Product Module Name其实就是项目的名称,这个在上面配置Module的图中也能看到,然后我们就可以愉快地和swift进行玩耍了
这里写图片描述
注意:引入Product Module Name-Swift.h的时候不一定自动提示,手写之后编译就可以了

当然,我很好奇这是怎么回事,然后我就command+点击 Person 进入了内部查看,发现原来苹果将所有的swift文件中的代码转成了oc的代码,不管你引入多少个swift文件,都会一股脑在Product Module Name-Swift.h文件中翻译成oc文件以便我们oc程序调用
这里写图片描述

怎么样,很强大吧,朋友们赶紧转过来吧,开始自己的swift开发,这绝对是苹果的未来啊!

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

OC代码中使用Swift文件的实践 的相关文章

  • Alamofire 仅在 GET 请求上出现请求错误

    我正在努力将我的项目从 AFNetworking 转移到 Alamofire 真的很喜欢这个项目 POST 请求工作得很好 但是 我在尝试发出 GET 请求时收到此错误 这是一些示例代码 class func listCloudCrednt
  • Swift 3 GCD API 更改后的dispatch_once

    新语法是什么dispatch once在语言版本 3 中进行更改后的 Swift 中 旧版本如下 var token dispatch once t 0 func test dispatch once token These 对 libdi
  • 快速从 appDelegate 中 popToRootViewController

    我试图从应用程序委托弹出到导航堆栈的根视图控制器 并且在将 obj c 中的内容转换为 swift 时遇到一些问题 obj c 中的工作原理 UINavigationController navigationController UINav
  • 如何获取多点触摸 UITapGestureRecognizer 的多个位置

    我的视图中有一个 UITapGestureRecognizer 我可以使用下面的代码很好地获取其触摸的位置 现在 如果我将此识别器的触摸次数更改为 2 或更多 它仍然会为我提供一个位置 如何获得两次触摸的两个位置 tapGesture lo
  • Swift 中 UIViewController 子类成员的双重初始化

    我想制作一个自定义容器视图控制器并向其子类添加一些成员UIViewController 当我尝试使用以下代码从应用程序委托初始化它时 self window UIWindow frame UIScreen mainScreen bounds
  • Swift:如何在 println 之后刷新标准输出?

    如何在 Swift 中刷新标准输出println命令 也就是说 Swift 相当于什么fflush stdout in C 您可以使用 fflush stdout 导入 libc 后 if os Linux import Glibc els
  • SwiftUI NavigationView 看不到图像

    我有一个代码并制作 NavigationLink 按钮 我编写文本和图像 但我的图像看不到 请帮助我 VStack Image Coachs resizable aspectRatio contentMode fill frame widt
  • macOS 应用程序中还需要 Swift 的嵌入式 dylib吗?

    Swift 5 发行说明说 对于运行 iOS 12 2 watchOS 5 2 和 tvOS 12 2 的设备 Swift 应用程序不再在构建变体中包含 Swift 标准库和 Swift SDK 覆盖的动态链接库 但在同一上下文中没有提及
  • Swift 中的弹出视图

    我有一个弹出视图 没有选项卡栏 它弹出到带有选项卡栏的视图控制器 在带有选项卡栏的视图控制器中 我设置了一个单击按钮 以便弹出视图控制器 IBAction func PopUpClicked sender UIButton gt Void
  • 在 Swift 中将 Int 转换为 UInt32

    我正在制作一个 Tcp 客户端 因此使用CFStreamCreatePairWithSocketToHost它期望第二个参数为 UInt32 这是我正在尝试做的事情的示例 func initNetwork IP String Port In
  • 如何在 Swift 中使用 substringToIndex? [复制]

    这个问题在这里已经有答案了 我在这一行收到编译器错误 UIDevice currentDevice identifierForVendor UUIDString substringToIndex 8 类型 String Index 不符合协
  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • Swift 中 UIImages 的淡入淡出动画

    我有一组图像 我希望它们在登录屏幕的背景中淡出 我无法在 swift 中找到任何可以做到这一点的东西 有什么办法我可以做到吗 这是我当前的代码 override func viewDidLoad super viewDidLoad star
  • 在 viewWillAppear( ) 中获取空值,但在 viewDidLoad( ) 中获取有效值

    When print mess 被称为来自viewDidLoad函数 它打印预期的内容 但是当从viewWillAppear函数 它给出空输出 完成分配后标签也没有更新viewDidLoad 为什么是这样 主视图控制器 if segue i
  • Swift:在 Core Data 中存储自定义类的数组

    我是核心数据新手 但对于我的一个新项目 我想将我的数据保存到核心数据 我想创建一个 Reptile 类 其中包含几个自定义类数组 如果没有核心数据 我会得到这样的东西 import Foundation import UIKit class
  • 除了使用正则表达式之外,在 Swift 中解析 HTML

    下面是我想在 Swift 中解析的 HTML 代码 td class pinyin a href rsc audio voice pinyin pz yi1 mp3 span class mpt1 y span a a href rsc a
  • 从 AF.Request 响应获取数据

    我需要使用 Alamofire 的 Post 请求调用的 json 响应中的数据 但由于某种原因我无法访问该数据 我尝试按照 Alamofire github 文档以及这篇文章进行操作从 AF 响应 JSON 获取数据 https stac
  • 在 macOS 10.14 上键入文本时,NSTextView 光标不出现

    我在 macOS 10 12 Mojave 上使用 NSTextView 观察到一个奇怪的问题 我正在更改 textStorage 属性didChangeText 像这样 self textStorage beginEditing ARTo
  • 当 Firebase 函数以 Swift 结束时

    我在我的应用程序中使用 Firebase 它查询大量用户并获取所需的特定数据 但是当它开始查询时 其余功能也继续运行 而不仅仅是查询 所以我无法理解当它结束时 例如在这段代码中 ref observeEventType ChildAdded
  • iOS 上的本地通知需要用户许可吗?

    我在我的应用程序中使用 UILocalNotification 来安排通知 通知工作正常 并在我需要时显示 我对此没有意见 我没有做任何远程 推送通知 让我想知道的是 我从未见过您通常在多个应用程序中看到的推送通知的著名权限对话框 我什至重

随机推荐

  • 定时器初值的计算方法

    定时器初值的计算方法 1 xff1a 定义 用户时间 xff1a Tuser 寄存器位数 xff1a Rn xff08 n 为 8 16 32分别代表 0xFF 0xFFFF 0xFFFFFFFF xff09 初始值 xff1a TCONH
  • iOS开发之NSAttributedString使用

    本文介绍了NSAttributedString和NSMutableAttributedString的简单用法 一 NSAttributedString介绍 摘自NSAttributedString h文件 span class hljs c
  • 阿里云添加安全组规则

    阿里云添加安全组规则 可以 参考 阿里云官方文档 xff1a https help aliyun com document detail 25471 html spm 61 5176 11065259 1996646101 searchcl
  • latex章节引用

    方法 xff1a 在章节后面直接添加 label 即可 xff0c 引用的时候使用 ref 可以是任意字符 参考 xff1a LaTeX 引用章节 公式和图表 Xovee CSDN博客 latex引用图表
  • Python之pip命令指定安装源和版本

    背景 用pip安装依赖包时默认访问 https pypi Python org simple 该路径经常出现不稳定以及访问速度非常慢的情况 xff0c 国内厂商提供的一些pipy镜像可以加快下载速度 xff0c 目前可用的有 xff1a 清
  • 从教程开始学习Rabbitmq

    Rabbitmq 入门概念 首先来介绍下Rabbitmq的一些概念 xff1a Producer xff1a 生产者 xff0c 生产者负责发送信息 xff08 messages xff09 Queue xff1a 队列 xff0c 队列是
  • 要看的书籍或视频——Java后端

    书单 xff1a 算法与数据结构 xff1a 数据结构 xff08 严蔚敏 xff09 大话数据结构 如果觉得教材无聊就可以看大话系列 xff0c 印象中里面还有很多诗 剑指Offer 程序员面试金典 编程珠玑 编程之美 牛客网 43 le
  • 丑数问题——动态规划、Java

    题目描述 把只包含因子2 3和5的数称作丑数 xff08 Ugly Number xff09 例如6 8都是丑数 xff0c 但14不是 xff0c 因为它包含因子7 习惯上我们把1当做是第一个丑数 求按从小到大的顺序的第N个丑数 这道题使
  • 字符串的排列(全排列)——Java、回溯法

    题目描述 输入一个字符串 按字典序打印出该字符串中字符的所有排列 例如输入字符串abc 则打印出由字符a b c所能排列出来的所有字符串abc acb bac bca cab和cba 输入描述 输入一个字符串 长度不超过9 可能有字符重复
  • Dijkstra算法——java实现

    面试时遇到Dijkstra算法 这个算法我是知道的 但是没具体写过 所以答题比较慢 抽时间实现了下这个算法 nbsp Dijkstra算法基本思路 该算法的基本思路是这样的 从起始点开始 将未访问过的相邻节点加入一个优先队列 类似于广度优先
  • Java静态类与建造者模式

    Java里静态类都是静态内部类 静态类可以声明普通 静态成员变量和方法 xff0c 但是只能访问外部静态的成员变量和方法 xff0c 不能访问外部的非静态方法和属性 普通的内部类不能声明静态成员和方法 xff0c 但是可以访问外部 还有一个
  • 玩转SpringBoot之整合Mybatis拦截器对数据库水平分表(转)

    https www cnblogs com mmzs p 11174551 html label0
  • 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(以第十次为例)

    在做题之前 xff0c 我们先来捋一捋本题的思路 xff0c 如下图 在编写代码时 xff0c 我们可能不能一次性的确定需要定义多少个变量 xff0c 这个就需要一步一步的看情况 代码如下 xff1a include lt stdio h
  • SwiftUI如何修改页面状态?@state的使用

    在SwiftUI开发中流传一种说法 xff1a 视图是状态的函数 这句话什么意思呢 xff1f 我们在玩游戏的时候 xff0c 死了几次 xff0c 得到几分 xff0c 收集了一些道具 xff0c 或者捡到武器 xff0c 在应用程序中
  • Building for iOS Simulator, but the linked and embedded framework 'App.frame'

    在使用android studio运行flutter项目时 xff0c 报如下错误 xff1a building for is simulator but the linked and embedded framework app fram
  • Xcode编译报 library not found for -lstdc++ 问题

    背景 xff1a 最近在编译某第三方提供的SDK的时候 xff0c 发现编译过不了 xff0c 报错信息如下 xff1a 提示library not found for lstdc 43 43 xff0c 开始以为没有导入对应的库 xff0
  • 使用NSProxy和NSObject设计代理类的差异

    经常发现在一些需要使用消息转发而创建代理类时 不同的程序员都有着不同的使用方法 有些采用继承于NSObject 而有一些采用继承自NSProxy 二者都是Foundation框架中的基类 并且都遵守了这个协议 从命名和文档中看NSProxy
  • Flutter中如何获取widget的大小和位置?

    在我们实际的开发中 xff0c 会有要获取某个widget的大小和位置的需求 xff0c 但是widget本身并没有对应的属性获取size和position xff0c 怎么办呢 xff1f 看官莫急 xff0c 且往下看 我们首先创建一个
  • ios中修改状态栏颜色的方法

    工作中会经常遇到需要修改状态栏显示的颜色 xff0c 实践发现 xff0c 修改其实很简单 xff0c 只需要在项目的infoPlist文件中添加一项 xff1a View controller based status bar appea
  • OC代码中使用Swift文件的实践

    最近在研究swift xff0c 就我看来 xff0c swift确实是比OC更优秀的语言 xff0c 这可以体现在很多方面 xff0c 网上已经对比的很透彻 xff0c 就不一一赘述 今天研究了一下如何在OC项目中使用swift文件 xf