如何将 Swift 类传递给需要类的 Objective-C 方法?

2024-02-06

我正在寻找使用 Objective-C 库saxy https://github.com/reaster/saxy将一些 XML 解析为对象,但方法签名是:

+ (id)rootXPath:(NSString *)xpath toMany:(Class)toType nsURI:(NSString *)nsURI;

我无法弄清楚如何传递 Class 对象类型,因为 Swift 似乎不以这种方式处理类。作为一种解决方法,我可能会在 Objective-C 中制作域模型 + 包装器,但最好知道是否有办法在纯 Swift 中做到这一点。

我已尝试以下操作,但收到 EXC_BAD_INSTRUCTION:

OXmlElementMapper.rootXPath("/route", toMany: Route.self, nsURI: "")

这会产生语法错误:

OXmlElementMapper.rootXPath("/route", toMany: Route.Type, nsURI: "")

MyClass.self is引用类的正确方法,但也许你错过了@objc在课堂上?

See 有关互操作的文档 https://developer.apple.com/library/prerelease/ios/documentation/swift/conceptual/buildingcocoaapps/InteractingWithObjective-CAPIs.html#//apple_ref/doc/uid/TP40014216-CH4-XID_36

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

如何将 Swift 类传递给需要类的 Objective-C 方法? 的相关文章

随机推荐

  • 字符串是如何排序的?

    有人可以解释一下以下函数的输出 public static void main String args String str1 new String 20 String str2 new String 100 List
  • 派生重载运算符,但仅对相同类型进行操作

    假设我有一个基类和两个从它派生的类 class Base protected double value public virtual Base Base double value value value Base const Base B
  • 无法设置未定义的属性“clientMutationId”

    我收到以下错误 当尝试通过 graphiql 运行突变时 请帮助我解决此问题或指向一个链接 我可以在其中找到反应中继突变示例 mutation createUser input username Hamza Khan clientMutat
  • pylint 为可调用的对象属性提供不可调用错误

    不确定我是否做错了什么或者这是否是一个问题pylint 在下面的代码中我得到一个 linting 错误self type不可调用E1102 虽然我可以忽略它并继续工作 但似乎这种事情应该很容易解决 只是不知道如何解决它 from typin
  • 使用正则表达式进行全字匹配

    我想要一个匹配 bananas 或 睡衣 但不匹配 bananas2 或 bananaspajamas 或 banana 或基本上除了这两个单词之外的任何内容的C 正则表达式 所以我这样做了 include
  • 在golang中传输一个大文件

    客户端发送文件 大小可能大于5G 发送到从服务器 然后从服务器发送到主服务器 从属设备会将临时文件保存到自身吗 我不希望发生这种情况 因为它会减慢上传速度并浪费从站的内存 有什么办法可以避免这种情况吗 在 golang 中传输大文件的最佳方
  • 将 DOM 操作应用于 HTML 并保存结果?

    我有大约 100 个静态 HTML 页面 我想对其应用一些 DOM 操作 它们都遵循相同的 HTML 结构 我想对每个文件应用一些 DOM 操作 然后保存生成的 HTML 这些是我想要应用的操作 start h1 title h2 desc
  • [Flags] Enum 属性在 C# 中意味着什么?

    我有时会看到如下的枚举 Flags public enum Options None 0 Option1 1 Option2 2 Option3 4 Option4 8 我不明白到底是什么 Flags 属性确实如此 有人可以发布一个很好的解
  • 在 Delphi 中创建可访问的 UI 组件

    我正在尝试从标准 VCL TEdit 控件检索可访问的信息 get accName 和 Get accDescription 方法返回空字符串 但 get accValue 返回输入到 TEdit 中的文本值 我刚刚开始尝试理解 MSAA
  • 如何在 Drupal 8 主题中添加 javascript 库?

    我正在尝试包含一个自定义 javascript 文件来操作我正在构建的 Drupal 8 主题中的菜单 我按照 Drupal 8 主题指南中的说明进行操作 将其包含在我的 info yml 文件中 js libraries librarie
  • 尝试第一个日志语句时,Boost Log 会导致崩溃(当不是管理员时)

    我现在正在尝试部署我的应用程序 它使用 Boost Log Boost 1 58 它是一个简单的控制台应用程序 在 Windows 7 中运行 日志记录在我的个人桌面上运行得非常好 但是 当我将应用程序部署到 Win7 虚拟机时 它在我的第
  • ZF2如何监听特定控制器的调度事件

    如何监听特定控制器的调度事件 目前我执行以下操作 模块 php public function onBootstrap EventInterface event application event gt getApplication eve
  • JavaFX:在 .FXML 文件中嵌入编码图像

    我想将编码图像嵌入到 FXML 中 我需要这个 因为我正在编写 svg 和 fxml 之间的转换器 我尝试过这个
  • F# 的编译器是用哪种语言编写的?

    F 的编译器是用哪种语言编写的 我听说 F 的编译器是用 F 编写的 F 编译器的每个下一个版本都是在其先前版本的基础上编写的 But 1 无法谷歌是否属实 2 如果属实 F 编译器的第一个版本是用哪种语言编写的 F 编译器是用 F 编写的
  • 热重载不适用于我的 webpack 5 反应项目

    我正在创建一个新项目 当我完成安装 npm 包并运行基本设置时 一切正常 除了当我在代码中进行更改并保存文件并移动到浏览器以查看更改时 页面没有在浏览器中重新加载 我必须手动刷新页面才能看到新的更改 这是我的 package json 文件
  • 如何在 sqlite 中构造我的查询?

    我想检索今天的数据 目前我有类似的东西SELECT FROM myTable WHERE timeStamp gt DATETIME NOW 1 DAY 但这给了我从现在到 24 小时前的结果 而不仅仅是今天 即无论自 00 00 以来已经
  • Asp.net 5 Web api返回状态代码和正文

    我正在使用 ASP NET 5 开发一个项目 并且正在编写一个 Web api 我继承了一些代码和数据库存储过程 它们使用 raiserror 来指示出现问题 用户名 密码不正确 许可证过期等 除了消息文本之外 存储过程不返回任何内容来唯一
  • 动态对象属性的 Typescript 动态联合类型

    如何从动态对象属性中获取动态联合类型 const config devices Brand1 model1 Brand2 model2 model3 export type DeviceBrand keyof typeof config d
  • 如何在 Laravel 5 中测试 Artisan 命令

    我构建了一个 Artisan 命令来从套接字接收数据 我想为此命令编写单元测试 但我不确定如何编写这样的测试 有人知道如何写吗 测试示例
  • 如何将 Swift 类传递给需要类的 Objective-C 方法?

    我正在寻找使用 Objective C 库saxy https github com reaster saxy将一些 XML 解析为对象 但方法签名是 id rootXPath NSString xpath toMany Class toT