openUrl 命令在 Obj-C 中有效,但在 Swift 中无效

openUrl command works in Obj-C but not Swift

我们的代码库仍然是一个非常混合的代码库,但我一直在尝试在 Swift 中做更多的工作。不幸的是,我 运行 遇到了一个奇怪的情况,在 Obj-C 中运行良好的命令绝对拒绝在 Swift 中运行 运行。

我正在尝试将文件从我们的一个桌面产品发送到我们的另一个产品。所有 URL 方案均已正确设置。 Obj-C 中的这个命令完美运行:

[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"ourotherapp://v1/import?filePath=/Users/gi.joe/Documents/test.wav"]];

然而,在尝试使用Swift版本时,这个绝对拒绝执行。没有例外,没有线索,什么都没有:

NSWorkspace.shared.open(URL(fileURLWithPath: "ourotherapp://v1/import?filePath=/Users/gi.joe/Documents/test.wav"))

NSWorkspace 在 Swift 中的工作方式与 Obj-C 有什么区别吗?我查看了 Apple 文档,但也许我错过了什么?

我看到您在 Obj C 和 Swift 中尝试了两个不同的调用。

我没试过下面的代码,也许这个例子对你有帮助:

if let checkURL = NSURL(string: "https://google.com") {
    if NSWorkspace.shared().open(checkURL as URL) {
        print("URL Successfully Opened")
    }
} else {
    print("Invalid URL")
}

试试这个:

guard let url = URL(string: "someURL") else { return }
UIApplication.shared.open(url)