swift - NSXMLParser: How to return the parseError if .parse() returns false? -
in swift, have been experimenting nsxmlparser. in general confident concepts , implementation.
therefore have, example, function myfunc() include call .parse() method.
in event .parse() method returns false how can use delegate function parser(parser: nsxmlparser, parseerroroccurred parseerror: nserror) return parseerror directly myfunc()? how can access error?
i know print error. , can see assign value variable class level scope. guessing there better of getting it.
func myfunc() { // ... myxmlparser!.delegate = self if myxmlparser!.parse() != true { // ... } } and implement delegate functions
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) { // know print(parseerror) or assign value variable wth class level scope } how can return parseerror or otherwise access myfunc() without passing value variable wider scope?
if parse() method of nsxmlparser returns false can use
var parsererror: nserror? { } // can called after parse on determine parser state. property information problem. the
var linenumber: int { } var columnnumber: int { } properties give more information location of error. example:
if !myxmlparser.parse() { let error = myxmlparser.parsererror let line = myxmlparser.linenumber let col = myxmlparser.columnnumber println("xml parsing failed @ \(line):\(col): \(error?.localizeddescription)") }
Comments
Post a Comment