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)