我在这里遇到的一个问题可能是一个我忽略的非常简单的答案……如何使用NSURL检索本地文件?我在这里:
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() }
但是,在成功构建之后,它将挂在var urlpath上。我到处搜寻,并在这里和其他地方尝试了一些建议,但无济于事。请帮忙?:(
您正在尝试从文件系统而不是从Web加载文件。
对于创建,NSURL您需要使用fileURLWithPath:类方法。
NSURL
更改您的方法,例如:
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() }
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() }
注意: 在Swift 3中,您也可以使用URL类而不是class来构造url NSURL。因此,上述用于构建url的代码更改为:
let url = URL(fileURLWithPath: urlpath!)