NSXMLParser解析器:parseErrorOccurred:未在iOS 7上调用
我在iOS7上有一个非常奇怪的问题。
我使用标准的NSXMLParser。 在iOS6上,一切正常 – 当XML有效时以及当NSData为零字节或包含无效字节时。
self.dataParser = [[[NSXMLParser alloc] initWithData:data] autorelease]; [self.dataParser setDelegate: self]; [self.dataParser parse];
在iOS7解析器上,只有在具有有效的XML数据时才能正常工作。 如果数据是零字节,则不会调用任何委托方法。
请帮我找个方向。 谢谢。
UPD。 实现了所有委托方法(它们在iOS6上运行良好)。 我可以检查数据是否包含非零字节(和data == nil),但我还必须处理无效的XML情况……
似乎在iOS 7 parser:parseErrorOccurred:
当数据为零字节或在UTF8
编码中无效时,不调用委托方法。
对我来说,我不必使用parserDidEndDocument:
和parser:parseErrorOccurred:
检测完成解析的方法,我只能检查parse
方法的返回值!
这就像我这些年来一直失明:)
非常感谢Martin R.
您应该始终检查您的data
是否正常。 你应该实现委托方法:
parser:parseErrorOccurred
并检查出错了什么并处理错误。
在您的情况下,您只应检查if(!data)
。