NSXMLParser:如果 .parse() return 为假,如何 return parseError?
NSXMLParser: How to return the parseError if .parse() returns false?
在Swift,我一直在试验NSXMLParser
。总的来说,我对概念和实施充满信心。
因此,例如,我有一个函数 myFunc()
,它将包括对 .parse()
方法的调用。
如果 .parse()
方法 returns false
如何使用委托函数 parser(parser: NSXMLParser, parseErrorOccurred parseError: NSError)
到 return parseError
直接到myFunc()
?我如何访问该错误?
我知道我可以打印错误。而且我可以看到我可以将其值分配给具有 class 级别范围的变量。但我猜想得到它会更好。
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
}
我如何 return parseError
或以其他方式从 myFunc()
访问它而不将它的值传递给范围更广的变量?
如果 parse()
方法 NSXMLParser
returns 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 }
属性提供有关错误位置的更多信息。
示例:
if !myXmlParser.parse() {
let error = myXmlParser.parserError
let line = myXmlParser.lineNumber
let col = myXmlParser.columnNumber
println("XML parsing failed at \(line):\(col): \(error?.localizedDescription)")
}
在Swift,我一直在试验NSXMLParser
。总的来说,我对概念和实施充满信心。
因此,例如,我有一个函数 myFunc()
,它将包括对 .parse()
方法的调用。
如果 .parse()
方法 returns false
如何使用委托函数 parser(parser: NSXMLParser, parseErrorOccurred parseError: NSError)
到 return parseError
直接到myFunc()
?我如何访问该错误?
我知道我可以打印错误。而且我可以看到我可以将其值分配给具有 class 级别范围的变量。但我猜想得到它会更好。
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
}
我如何 return parseError
或以其他方式从 myFunc()
访问它而不将它的值传递给范围更广的变量?
如果 parse()
方法 NSXMLParser
returns 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 }
属性提供有关错误位置的更多信息。 示例:
if !myXmlParser.parse() {
let error = myXmlParser.parserError
let line = myXmlParser.lineNumber
let col = myXmlParser.columnNumber
println("XML parsing failed at \(line):\(col): \(error?.localizedDescription)")
}