我一直在研究本教程https://www.appcoda.com/building-rss-reader-using-uisplitviewcontroller-uipopoverviewcontroller/ 其中的一部分讨论了如何使用NSXMLParser解析RSS feed:
这是原始的代码段方法:
func startParsingWithContentsOfURL(rssURL: NSURL) {
let parser = NSXMLParser(contentsOfURL: rssURL)
parser.delegate = self
parser.parse()
}
但是,我看到NSXMLParser现在是XMLParser。我一直在尝试:
func startParsingWithContentsOfURL(rssURL: NSURL) {
func startParsingWithContentsOfURL(rssURL: NSURL) {
let parser = XMLParser(contentsOfURL: rssURL)
parser.delegate = self
parser.parse()
}
}
这是我在其他地方看到过的模型,但是它给出了错误“传递给调用的参数不带参数”。虽然我认为该错误是不言自明的,但我在其他地方也看到过类似形式的代码,这些代码似乎(显然)对其他人有用。
我尝试的另一件事是:
let parser = XMLParser.init(contentsOf: rssURL)
但是我遇到同样的错误-知道我做错了什么吗?
答案 0 :(得分:0)
与观看古代雨燕的一些考古遗迹相比,您最好找到现代的文章。
如您所见,NSXMLParser
重命名为XMLParser
,并引入了新的类型URL
。
func startParsingWithContentsOfURL(rssURL: URL) {
guard let parser = XMLParser(contentsOf: rssURL) else {
//...
return
}
parser.delegate = self
parser.parse()
}
更新
请尝试以下操作:
func startParsingWithContentsOfURL(rssURL: URL) {
guard let parser = Foundation.XMLParser(contentsOf: rssURL) else {
//...
return
}
parser.delegate = self
parser.parse()
}
在旧的旧教程中,您定义了一个类XMLParser
。因此,您可能需要区分两个XMLParser
,Apple的和您自己的。
我强烈,强烈且非常强烈地建议您找到为现代Swift编写的现代教程或示例。