Objective-C 调用 Swift 函数

2024-03-29

Swift 函数定义于MySwift.swift File:

func SomeSwift()
{

}

SomeSwift()没有在任何 Swift 类中定义,它只是一个纯函数。

After CMD + B to build the project, open Project-Swift.h, the SomeSwift() isn't show in there.

Swift 中的函数是否必须在某个 Swift 类中定义?与@objc marked?

像下面这样:

@objc class SomeSwift: NSObject {
   func SomeSwift()
  {

  }
}

参考苹果文档 https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html关于在 Objective-C 中使用 Swift:

Swift 类必须是 Objective-C 类的后代 在 Objective-C 中可访问和使用

意味着你的班级应该是@objc class SomeSwift: NSObject(你是对的!),但你无法访问整个东西在 Swift 文件中:

当您创建一个继承自 Objective-C 类的 Swift 类时, 类及其成员——属性、方法、下标和 与 Objective-C 兼容的初始化器会自动 可从 Objective-C 获得。这excludes仅限 Swift 的功能,例如 此处列出的:

Generics

Tuples

Swift 中定义的没有 Int 原始值类型的枚举

Swift 中定义的结构

Swift 中定义的顶级函数

Swift 中定义的全局变量

Swift 中定义的类型别名

Swift 风格的变量

嵌套类型

柯里化函数

参考 https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html#//apple_ref/doc/uid/TP40014216-CH4-ID53.

因此,您不能使用SomeSwift顶级函数。

即使您尝试添加@objc在声明之前,编译器会告诉您:

@objc 只能在与类成员、@objc 协议和类的具体扩展一起使用时。

并提出删除建议@objc.

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

Objective-C 调用 Swift 函数 的相关文章

  • CGContextSelectFont 等效项

    在 iOS 7 CGContext SelectFont 中已弃用 已弃用的消息说我必须使用 Core Text 但我不知道哪一个与这段代码完全相同 CGContextSelectFont context Helvetica kBarLab
  • 无法添加钥匙串项目。使用 KeychainItemWrapper 更改标识符后出现错误 - 25299?

    我想用 KeychainItemWrapper 将 UUID 保存在钥匙串中 所以我在中添加以下方法MyKeychainManager m define keychain idenentify com myapp bundle1 void
  • 如何更改便携式 xamarin ios 项目中的启动屏幕?

    我正在使用便携式 xamarin 形式 其中项目是 IOS 项目 在 IOS 项目中 我想创建闪屏 我在 ios 项目属性中添加了 Iphone 启动图像和 iPad 启动图像 当我运行该应用程序时 它显示默认的启动屏幕 我还尝试从 inf
  • CMSampleBufferSetDataBufferFromAudioBufferList 返回错误 12731

    我正在尝试捕获应用程序声音并将其传递给 AVAssetWriter 作为输入 我正在设置音频单元的回调以获取 AudioBufferList 问题始于将 AudioBufferList 转换为 CMSampleBufferRef 它总是返回
  • Swift:无法为“[UIViewController]”类型的值添加下标?

    我试图弄清楚如何在 Xcode 7 iOS9 上的 Swift 中解决此问题 并且我也遇到此错误 无法为 UIViewController 类型的值添加下标 索引类型为 Int 任何建议表示赞赏 谢谢 My code func indexP
  • iOS 11 浮动 TableView 标题

    有一个应用程序包含多个部分 展开 时每个部分有几行 折叠 时没有 每个部分都有一个部分标题 使用以下子类重用它们UITableViewHeaderFooterView等等 到目前为止一切顺利 然后在 iOS 11 中 我使用了可视化调试器
  • 如何修复 ReactiveCocoa(带有 CocoaPods)的安装?

    这里是新手 尝试将 ReactiveCocoa 2 2 4 和 CocoaPods 安装到项目中 但在运行时遇到错误 我用过github 上的这个 podspec https github com CocoaPods Specs blob
  • UICollectionReusableView 方法未被调用

    我希望我的部分位于UICollectionView有一个带有图像的标题 我已按照以下步骤操作 在故事板中 分配了一个标题作为我的附件UICollectionView 给它一个标识符 创建了一个子类UICollectionReusableVi
  • 将语音添加到自定义 UIMenuController

    我创建了一个自定义UIMenuController in a UIWebView但它似乎摆脱了 说出选择 选项UIMenuController在那之后 所有测试设备上的 偏好设置 中都打开了发言选择选项 并且它出现在其他应用程序中 包括非
  • 使用prepareForSegue传递数据

    我试图将数据从viewController 1传递到viewController2 我有2个按钮和1个segue 因此有一个segue标识符 这2个按钮 按下时每个按钮应显示 1个标签用于显示标题 1个textView用于显示定义 我很难显
  • 为每行 NSTableView 文本着色

    我有一个 NSTableView 它显示我拥有的对象数组 对于每个对象 行 我想根据在每个对象上运行的函数的结果来更改显示的文本的颜色 因此 例如表中存在于另一个列表 或其他一些要求 中的所有对象 我想以绿色文本显示它们 不存在的对象以红色
  • 如何从 Firebase 同步检索数据?

    我有两个集合 即用户和问题 根据使用 userId 登录的用户 我检索currQuestion价值来自users收藏 基于currQuestion值 我需要检索question来自 Firebase 的文档Questions收藏 我使用下面
  • 如何将unix时间戳转换为iphone中的nsdate [重复]

    这个问题在这里已经有答案了 可能的重复 从 Unix 时间戳创建 NSDate https stackoverflow com questions 5827240 create nsdate from unix timestamp 我有一个
  • 由于 2.23 导致 iOS 应用程序被拒绝 - iOS 数据存储指南

    以下是 Apple 关于拒绝的消息 2 23 应用程序必须遵循 iOS 数据存储指南 否则将被拒绝 2 23 详情 在启动和内容下载时 您的应用程序会存储 6 5 MB 这并不意味着 遵守 iOS 数据存储指南 下一步 请验证只有用户使用您
  • iOS 使用 NSColor 与 UIColor?

    有什么区别UIColor and NSColor 什么时候会使用每一种 我碰到NSColor在试图弄清楚的同时UIColor用于 iOS 中的属性字符串 我理解使用UIColor对于 UIKit 等 但我不认为NSColor对于这种事情确实
  • Swift 中的 viewWillLayoutSubviews

    我正在尝试翻译SKScene scene GameScene sceneWithSize skView bounds size 进入 swift 但我收到错误 sceneWithSize 不可用 使用对象构造 SKScene size 我在
  • AVPlayer 不播放音频 - iOS 9,目标 - C

    我正在尝试从我的应用程序中的 URL 播放音频 iOS 8 中一切都按预期发生 模拟器和物理设备 对于 iOS 9 它可以在模拟器中运行 但在设备上 音频根本无法播放 出现流媒体 如果我单击播放 进度条还显示音频正在加载并播放 但没有声音
  • Google Cloud Messaging 显示成功消息但未发送 iOS

    所以我在使用 Google Cloud Messaging 时遇到了一个非常奇怪的问题 我遇到的问题是它正在成功注册设备 并且当发送消息时我会收到来自 Google 的成功消息 但设备永远不会收到任何消息 我从 GCM 得到的消息是 res
  • 使用 UItableViewCell 类型的表达式初始化“CustomCellView *”的指针类型不兼容

    你能帮我理解和 修复下面的错误吗 我不明白CustomCellView是一个子类UItableViewCell 代码已编译 但警告仍然存在 Incompatible pointer type initializing CustomCellV
  • 如果加载 dylib,垃圾收集工作队列会崩溃

    我们正在将应用程序从 10 6 移植到 10 8 我正在查看我们在应用程序中加载的 dylib 我面临着非常不寻常的崩溃垃圾收集工作队列并附有以下消息 malloc Thread suspend unable to suspend a th

随机推荐

  • 使用Subject 和Observable 之间有什么区别,各自的用途是什么?

    我了解了制作 Observable 的两种不同方法 第一个是一个主题 如下所示 file A const message new Subject file B message subscribe message gt console log
  • 保留解密加密数据库的解密密钥的最佳方法是什么?

    我有一个加密的数据库和解密密钥 如何使解密密钥免受黑客攻击 数据库黑客攻击和未经授权的 PC 访问 汇编中的硬编码 保存在注册表中 保存在内存中 此外 我需要加密数据的算法 在每个解密时间期限的安全性方面 执行此操作的最佳算法是什么 RSA
  • GNU 日期和自定义格式

    我有一些特定日期格式的字符串 我想使用 GNU date 命令 coreutils 8 20 来处理它们 我可以使用 FORMAT 字符串获取要输出的日期 但不能理解使用相同字符串输入的字符串 我很确定我错过了一些明显的东西 是什么赋予了
  • 函数返回与不返回?

    返回还是不返回 是函数的问题 或者说 这真的很重要吗 故事就这样开始了 我曾经编写如下代码 Type3 myFunc Type1 input1 Type2 input2 但最近我的项目学院告诉我 我应该尽可能避免编写这样的函数 并建议采用以
  • 如何从里程计/tf数据获取投影矩阵?

    我想将视觉里程计的结果与 KITTI 数据集提供的事实进行比较 对于地面中的每一帧 我都有一个投影矩阵 例如 1 000000e 00 9 043683e 12 2 326809e 11 1 110223e 16 9 043683e 12
  • 如何在 MongoDB 中执行 SQL Join 等效操作?

    如何在 MongoDB 中执行 SQL Join 等效操作 例如 假设您有两个集合 用户和评论 我想提取 pid 444 的所有评论以及每个集合的用户信息 comments uid 12345 pid 444 comment blah ui
  • 如何从android发送数据到mysql服务器?

    我是android开发的新手 我正在使用 Android Studio 我正在制作一个应用程序 其中有一个名称下拉列表 选择任何名称后 相应的ID该名称显示在应用程序中 然后有一个按钮将搜索用户当前的 GPS 坐标并将其显示在应用程序上 我
  • 非线性条件断点

    是否可以设置断点 使程序在指令满足某些条件后停止执行true 一个类有一个名为的变量currency我想设置一个断点 使程序在之后的任何行停止currency 20 我不知道行号在哪里currency已更改 因此这就像在其中放置一个断点每行
  • 将 PDF 转换为 PNG Node.JS

    我正在构建一个 Node js 应用程序来将 PDF 转换为 PNG 并显示在用户页面上 该应用程序将像这样工作 用户上传 PDF 到服务器 服务器将 PDF 页面转换为单独的 PNG 在用户页面上显示 PNG 我发现了一个很棒的软件包 名
  • 在 Silverlight 8.1 应用程序中注册后台任务

    我正在开发一个使用 BLE 与某个项目通信的应用程序 我需要从它接收后台通知 我知道存在GattCharacteristicNotificationTrigger但我找不到任何方法在 Silverlight 8 1 应用程序中注册后台任务
  • 固定卡满足 FITS 标准是什么意思?

    我正在尝试使用 FITS 文件 我有以下代码 from astropy io import fits from astropy wcs import WCS hdul fits open fitsfilename 0 wcs WCS hdu
  • 在 jsf 页面中使用 commandButton 来下载文件

    使用 jsf 页面中的命令按钮下载文件 使用 JSF 和 Richfaces 我有一个表 扩展 ExtendedDataModel 实现可修改 可序列化 其中包含一些数据 并且每行都有一个 下载 按钮
  • tabBar 存在时出现奇怪的定位问题

    我们有一个带有 UIPickerView 和工具栏 216 44 的自定义视图 在初始化时 viewDidLoad 使用以下代码将此自定义视图推送到屏幕下方 CGPoint newOrigin newOrigin x pickerViewO
  • 如何显示有关图像的所有元数据?

    我正在尝试使用 Pillow 读取图像的元数据TAGS功能 我使用以下代码来获取此信息 imports from PIL import Image from PIL ExifTags import TAGS imagename image
  • UITapGestureRecognizer 选择器,发送者是手势,而不是 ui 对象

    我有一系列使用标签来识别的图像视图 我在图像中添加了单击手势 UITapGestureRecognizer singleTap UITapGestureRecognizer alloc initWithTarget self action
  • ruby redis 客户端扫描与密钥

    我正在寻找一些有关 redis 的 ruby 客户端的文档 但没有成功 我正在使用密钥 但我听说它们在生产 redis 中的性能很糟糕 redis Redis new host Settings redis host port Settin
  • 内联访问等待值(JS)?

    首先我写了这样的东西 async function const value await Promise resolve a 3 a console log value catch console error 但我很快得出结论 这行不通 因为
  • 带有后代和后代 text() 谓词的 XPath 查询

    我想构造一个 XPath 查询 它将返回 div 或 table 元素 只要它有包含文本 abc 的后代 需要注意的是它不能有任何 div 或 table 后代 div table table div
  • 对于 python 的 pip,requirements.txt 中 ruby​​ 的 gem 中的 twiddle-wakka (~>) 相当于什么?

    我已经看到 ruby 的 gem 文件中使用了 twiddle wakka 运算符 gt 文档 http docs rubygems org read chapter 16 来指定兼容的最后一个点版本 如下所示 gt 0 3 1 is sa
  • Objective-C 调用 Swift 函数

    Swift 函数定义于MySwift swift File func SomeSwift SomeSwift 没有在任何 Swift 类中定义 它只是一个纯函数 After CMD B to build the project open P