在Swift中,我一直在试验NSXMLParser
。总的来说,我对概念和实施充满信心。
因此,我有一个函数myFunc()
,其中包含对.parse()
方法的调用。
如果.parse()
方法返回false
,我如何使用委托函数parser(parser: NSXMLParser, parseErrorOccurred parseError: NSError)
将parseError
直接返回myFunc()
?如何访问错误?
我知道我可以打印错误。我可以看到我可以将其值赋给具有类级别范围的变量。但我猜是有更好的获得它。
func myFunc() {
// ...
myXmlParser!.delegate = self
if myXmlParser!.parse() != true {
// ...
}
}
我实现了委托函数
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
// ...
}
func parser(parser: NSXMLParser, foundCharacters string: String) {
// ...
}
func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
// ...
}
func parser(parser: NSXMLParser, parseErrorOccurred parseError: NSError) {
// I know that I could print(parseError) or assign its value to a variable wth class level scope
}
如何在不将值传递给范围更广的变量的情况下返回parseError
或以其他方式从myFunc()
访问它?
答案 0 :(得分:5)
如果parse()
的{{1}}方法返回NSXMLParser
,那么您
可以使用它的
false
属性以获取有关问题的信息。在
var parserError: NSError? { get } // can be called after a parse is over to determine parser state.
属性提供有关错误位置的更多信息。 例如:
var lineNumber: Int { get }
var columnNumber: Int { get }