如何将 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 方法? 的相关文章

  • 从两种不同类型的数组中获取公共数据

    struct Human let name String let id String let travelled String struct Animal let name String let id String let travelle
  • xcode 9 中的 Facebook 登录按钮终止

    我正在使用 Xcode 9 并将编译器设置为 Swift 3 2 我使用 Cocoapods 安装了 Facebook Login 一切都编译没有任何错误 但每当我在模拟器中运行它时 我单击登录按钮 它就会崩溃 控制台中仅打印以下内容 li
  • Swift UIToolBar 追加 UIBarButtonItem 项目

    我的语法不正确 有人知道这里缺少什么吗 我正在使用 Xcode 6 beta 3 并且尝试将工具栏项动态添加到 viewDidLoad 中的 手动添加的 工具栏 有两个问题 首先 我无法将工具栏中的项目附加到数组中 其次 虽然编译器允许我调
  • Swift:在标签背景中制作图像

    我想将标签放入带有角半径的红色矩形的图像中 条件是图像大小必须等于或略大于标签大小 为此我找到了一个类似的question https stackoverflow com questions 3037902 adding backgroun
  • 删除 UISearchBar 中的清除按钮

    我想从 UISearchBar 中删除清除按钮 灰色 x 我尝试按照中的描述进行操作这个答案 https stackoverflow com a 19458201 但它不起作用 我将 Objective C 代码从下面的答案和评论翻译为以下
  • 如何禁用 ARCoachingOverlayView 的自动激活?

    我正在添加一个ARCoachingOverlayView to my ARView像这样 let coachingOverlayTemp ARCoachingOverlayView coachingOverlayTemp delegate
  • 扩展功能截图未捕获 iPhone 和 iPad 中的同一区域

    我正在使用扩展函数来截取 uiview 的屏幕截图 问题是结果看起来非常不同 我希望无论使用 ipad 还是 iphone 照片看起来都一样 我手动输入约束 因此我希望图像是相同的 我想使用该函数转到视图控制器的原点或中心 高度为 200
  • Core Data + CloudKit 无法在其他设备上自动刷新?

    我的 SwiftUI 应用程序与 Core Data CloudKit 一起使用 我可以从 Mac 或 iPhone 将新条目保存到数据库中 该应用程序对所有设备使用完全相同的项目 代码库 唯一的问题是我需要关闭应用程序并重新打开它才能查看
  • 带 cookie 的 Alamofire 请求

    我是初学者 我不知道如何使用 Alamofire 发出 GET 请求 但它需要身份验证 我设法用其他网络服务 登录 来做到这一点 因为它需要参数参数 parameters username username password passwor
  • UICollectionView 快速粘性标题

    我正在尝试创建一个粘性补充标题 它始终保持在顶部并且不会响应滚动事件 到目前为止 我发现的解决方案仍然对弹跳滚动做出反应 并使用自定义 flowLayout 进行修复 这也可能是我的问题的修复 我想要这种方式的原因是标头在其他地方使用并且应
  • 如何在 flutter 插件的 Swift 编写的 iOS 部分中使用 Objective-C 框架

    In a 颤振插件 我想用一个Objective C我的框架iOS部分用swift编写 然后将其用于使用 Swift 的 Flutter 项目作为 iOS 语言 经过一些研究 我不是 iOS 开发人员 后 我发现我想要做的事情可以通过导入文
  • 检查 switch 语句中的可用性

    if a Enum输入添加新的case在新的操作系统版本中 如何检查可用性switch陈述 像一个Enum in StoreKit below public enum Code Int public typealias ErrorType
  • 检测 SFSafariViewController 中的 URL 更改

    我有一个 SFSafariViewController 当用户点击我的应用程序中的链接时 它会打开 我需要检测 URL 何时更改 这样当它更改时 应用程序会显示警报 我们如何检测 SFSafariViewController 中的 URL
  • 从方案加载 url 第一次未处理 - appdelegate 与 viewcontroller

    我的应用程序已成功打开并将参数 从 URL 方案 即 myApp sometextToPrint 设置为AppDelegate类 但每当我想处理它们时 当从该 URL 打开应用程序时 它就会在第一次失败 我在前台检查器中有一个应用程序 它调
  • 使用 Swift 创建 SKSpriteNode 子类

    我正在尝试创建作为 SKSpriteNode 子类的类 并且我想向其添加其他属性和函数 但在第一步中我遇到了错误 这是我的代码 import SpriteKit class Ball SKSpriteNode init super init
  • NumberFormatter 分组未按预期工作

    在进行货币格式化工作时 我在尝试格式化智利比索时发现了一个问题 按照此代码 let priceFormatter NumberFormatter priceFormatter locale Locale identifier es CL p
  • 你能用 Swift 计算一个字符串吗?

    我有一个变量 并且有一个以字符串形式存储在其中的函数 var x func myFunction y Int println y 有没有办法评估字符串并运行函数 No 没有等效的eval https developer mozilla or
  • 将 3D 对象添加到 ARGeoAnchor

    如果这个问题不太好 请原谅我 我在 Apple 的 ARGeoAnchor 文档中遇到了一些障碍 目前 ARGeoAnchor 仅在 AR 场景视图中显示一个蓝点 我正在尝试显示任何 3D 渲染或对象 My code let coordin
  • 终止应用程序后发送本地通知 swift 2

    当应用程序状态进入终止 不运行状态时 可以在特定时间后执行某些特定任务 func applicationDidEnterBackground application UIApplication print APP in background
  • 修改多张照片时只有一个 iOS 权限对话框

    我的应用程序允许用户从相机胶卷中选择多个图像并对这些图像应用编辑 但是 它会提示用户获得每个图像编辑的权限 编辑用户图像时是否可以只显示一个权限对话框 如果是 我该如何将我的编辑分组为一项权限 这是我的应用程序的屏幕截图 我在应用商店中发现

随机推荐

  • 字符串是如何排序的?

    有人可以解释一下以下函数的输出 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