gpt4 book ai didi

Swift - NSURL fileURLWithPath 没有解包?

转载 作者:搜寻专家 更新时间:2023-11-01 05:54:21 28 4
gpt4 key购买 nike

非常简单:我得到 “可选类型 'NSURL 的值?' not unwrapped。” 在这两行上,我试图从我现有的一个 Objective-C 应用程序中翻译:

func urlForScene(sceneID:Scene) -> NSURL {
var filename:NSString = "Whatever"
let path = NSBundle.mainBundle().pathForResource(filename, ofType: "m4a")
return NSURL.fileURLWithPath(path)
}

我认为对于 path 为 nil 的可能性来说,这可能是一件非常简单的事情,但我没有发现任何其他问题让我知道我应该在这里做什么。如果这是一个愚蠢的问题,我们深表歉意。

如果 NSURL 没有解包,我应该解包吗?我需要以不同的方式调用 fileURLWithPath: 吗?

提前致谢。

最佳答案

NSURL.fileURLWithPath(path) 返回一个可选的 NSURL,如您在其声明中所见。

class func fileURLWithPath(path: String) -> NSURL?

但是您的 urlForScene 方法返回一个非可选的 NSURL。如果确定会返回一个 URL,可以通过在末尾添加一个感叹号来解包(别名:unwrapping)

return NSURL.fileURLWithPath(path)!

但是,出于安全原因,我建议您在返回值之前检查是否为 nil:

let returningURL : NSURL? = NSURL.fileURLWithPath("http://www.lombax.it")
if let url = returningURL
{
return url
} else {
// do something else
}

关于Swift - NSURL fileURLWithPath 没有解包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27214814/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com