在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
?
答案 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!)