0

我有以下代码,

NSString *string = "Some value";
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
self.parser = [[NSXMLParser alloc] initWithData:data];
self.parser.delegate = self;
[self.parser parse];

在我调用“解析”方法后,它立即调用委托parseErrorOccurred,然后调用委托parserDidEndDocument

我只想调用一种方法。

提前致谢。

4

2 回答 2

0

当出现致命错误时会调用该委托方法,因此您正在解析的 XML 存在问题。

该方法有一个NSError参数,它应该为您提供有关 XML 有什么问题的线索。

于 2015-06-23T07:16:25.693 回答
0

您的意思是当解析中发生错误时,您只想调用parseErrorOccurred( ) 而不调用 parserDidEndDocument()吗?

一种可能的解决方案:在parseErrorEccurred()中编写parser.abortParsing( ) 。我不确定这是否真的有效,如果失败,请尝试以下解决方案:

在您的类中使用包装解析器的标志。在parseErrorEccurred()中将该标志设置为 true ,然后在parserDidEndDocument()中检查该标志(如果为 false,则执行其他代码)。

希望这能解决您的问题。:)

于 2015-06-23T07:19:17.953 回答