将PathForResource转换为返回nil Swift的字符串

时间:2014-12-29 17:44:16

标签: macos swift webkit

在mac app中加载本地资源文件

let urlpath = NSBundle.mainBundle().pathForResource("myResource", ofType: "html");

将资源路径转换为string的{​​{1}}始终返回NSURL

nil

这可能是我收到错误 println("resource path = \(urlpath)") <---resource logged ok web.frameLoadDelegate = self; let requesturl = NSURL(string: urlpath!) println("URL String = \(requesturl)"),<---- returns nil let request = NSURLRequest(URL: requesturl!) web.mainFrame.loadRequest(request) 的原因 我在这里错过了什么来正确地将found nil while unwrapping an Optional value转换为pathForResource

3 个答案:

答案 0 :(得分:4)

if let myFileUrl = NSBundle.mainBundle().URLForResource("yourFile", withExtension: "html"){
            // do whatever with your url
} 

答案 1 :(得分:0)

莱昂纳多答案中给出的代码应该有效,而且更容易,更安全 带可选绑定的方法。这是为什么你的解释 代码失败:

let requesturl = NSURL(string: urlpath!)

返回nil,因为urlpath文件路径,而不是网址字符串 (例如&#34; file:/// path / to / file&#34;)。

如果用

替换该行
let requesturl = NSURL(fileURLWithPath: urlpath!)

然后你会得到预期的输出。

答案 2 :(得分:0)

对于Swift 5

let path = Bundle.main.path(forResource: "myResource", ofType: "html")
let url = URL(fileURLWithPath: path!)