【发布时间】:2019-04-25 16:32:37
【问题描述】:
所以...我想使用这个函数在给定的 URL 上启动一个应用程序。问题是,开发人员文档说:
参数
网址
应用程序 URL。
选项
启动应用程序时使用的选项。看 NSWorkspace.LaunchOptions 可能的值。
配置
包含配置选项的字典。这 字典可用于将其他选项传递给应用程序。可能的 工作区启动配置中描述了键值对 选项。配置字典可能为空,在这种情况下 默认行为适用。
错误
如果应用程序无法执行,则通过引用返回错误 被推出。如果不这样做,您可以为此参数指定 nil 想要错误信息。
返回值
如果应用程序已经在运行,并且 newInstance 没有 在选项字典中指定,然后是对现有的引用 应用程序被退回;否则返回一个新的应用程序引用。如果 应用程序无法启动,返回 nil 并且错误 在错误中指定。
问题是,这与函数签名根本不匹配,即:
func launchApplication(at url: URL, options: NSWorkspace.LaunchOptions = [], configuration: [NSWorkspace.LaunchConfigurationKey : Any]) throws -> NSRunningApplication
我到底应该在哪里指定所述错误?
【问题讨论】:
-
阅读该文档的其余部分,其中讨论了如何在 Swift 中处理错误。顺便说一句 - 你说它根本不匹配。但它完全匹配,除了错误,所以请澄清你的问题。
-
我可能有点夸张,但你正在分裂头发。我想我并没有真正要求捕捉错误,而是将其传播给用户。
-
参数名称完全匹配。有
url、options和configuration。 -
@rmaddy 没有分叉。所有具有错误参数的 Cocoa 方法都更改了其函数签名,以便删除错误参数并将函数转换为抛出函数。您必须捕获错误并处理它。见docs.swift.org/swift-book/LanguageGuide/ErrorHandling.html
标签: swift cocoa documentation appkit