Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift NSXMLParser:如果.parse()返回false,如何返回parseError?_Swift_Nsxmlparser - Fatal编程技术网

Swift NSXMLParser:如果.parse()返回false,如何返回parseError?

Swift NSXMLParser:如果.parse()返回false,如何返回parseError?,swift,nsxmlparser,Swift,Nsxmlparser,在Swift中,我一直在试验NSXMLParser。总的来说,我对这些概念和实施充满信心 因此,例如,我有一个函数myFunc(),它将包括对.parse()方法的调用 如果.parse()方法返回false我如何使用委托函数parser(parser:NSXMLParser,parserror发生的parserror:NSError)将parserror直接返回到myFunc()?如何访问错误 我知道我可以打印错误。我可以看到,我可以将它的值赋给一个具有类级别作用域的变量。但我猜有一个更好的方

在Swift中,我一直在试验
NSXMLParser
。总的来说,我对这些概念和实施充满信心

因此,例如,我有一个函数
myFunc()
,它将包括对
.parse()
方法的调用

如果
.parse()
方法返回
false
我如何使用委托函数
parser(parser:NSXMLParser,parserror发生的parserror:NSError)
parserror
直接返回到
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()
访问它,而不将其值传递给范围更广的变量?

如果
NSXMLParser
parse()
方法返回
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)")
}