我如何使用NSURL检索本地文件? [英] How can I retrieve local files with NSURL?

查看:106
本文介绍了我如何使用NSURL检索本地文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在这里有一个问题,可能有一个非常简单的答案,我忽略了...我如何检索NSURL的本地文件?我有这个:
$ b $ pre $ 重写func viewDidLoad(){
super.viewDidLoad()
var urlpath = NSBundle.mainBundle()。pathForResource(bpreg,ofType:xml)
let url:NSURL = NSURL(string:urlpath!)!
parser = NSXMLParser(contentsOfURL:url)!
parser.delegate = self
parser.parse()
}



<但成功构建后,它挂在var urlpath上。我四处搜寻,在这里和其他地方尝试了一些建议,无济于事。请帮忙? :(b / b)

解决方案

你试图从你的文件系统加载文件,而不是从web加载。 b

要创建 NSURL ,您需要使用 fileURLWithPath: class method。

改变你的方法:

Swift 2



 重写func viewDidLoad()
{
super.viewDidLoad()
var urlpath = NSBundle.mainBundle()。pathForResource(bpreg,ofType:xml)
let url :NSURL = NSURL.fileURLWithPath(urlpath!)!
parser = NSXMLParser(contentsOfURL:url)!
parser.delegate = self
parser.parse()
}



Swift 3



 重写func viewDidLoad()
{
super.viewDidLoad()
let urlpath = Bundl e.main.path(forResource:bpreg,ofType:xml)
let url = NSURL.fileURL(withPath:urlpath!)
parser = XMLParser(contentsOf:url)!
parser.delegate = self
parser.parse()
}



< hr>

注意:在Swift 3中,您也可以使用 URL 类来构造url而不是 NSURL class。所以上面的代码构建url更改为:
$ b $ pre $ let $ url $ URL $ file $ url $ url $ code>


I'm here with a question that probably has a really simple answer that I am overlooking... how can I retrieve local files with NSURL? I have this here:

override func viewDidLoad() {
    super.viewDidLoad()
    var urlpath = NSBundle.mainBundle().pathForResource("bpreg", ofType: "xml")
    let url:NSURL = NSURL(string: urlpath!)!
    parser = NSXMLParser(contentsOfURL: url)!
    parser.delegate = self
    parser.parse()
}

But after it successfully builds it hangs on var urlpath. I've searched around and tried a few suggestions here and other places to no avail. Please help? :(

解决方案

You are trying to load a file from your file system, not from web.

For creating the NSURL you need to use fileURLWithPath: class method.

Change your method like:

Swift 2

override func viewDidLoad()
{
    super.viewDidLoad()
    var urlpath     = NSBundle.mainBundle().pathForResource("bpreg", ofType: "xml")
    let url:NSURL   = NSURL.fileURLWithPath(urlpath!)!
    parser          = NSXMLParser(contentsOfURL: url)!
    parser.delegate = self
    parser.parse()
}

Swift 3

override func viewDidLoad()
{
    super.viewDidLoad()
    let urlpath     = Bundle.main.path(forResource: "bpreg", ofType: "xml")
    let url         = NSURL.fileURL(withPath: urlpath!)
    parser          = XMLParser(contentsOf: url)!
    parser.delegate = self
    parser.parse()
}


Note: In Swift 3 you can also use the URL class to construct the url instead of NSURL class. So the above code for constructing url changes to:

let url = URL(fileURLWithPath: urlpath!)

这篇关于我如何使用NSURL检索本地文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆