今日遇到此问题的前提:
使用iOS系统自带的Xml解析类 NSXMLParser类来进行解析两个xml文件,一个在服务器上一个在本地,我只想在一个类里面做这两个文件的解析,等到线上的xml文件解析完成之后在NSXMLParserDelegate中的
-(void)parserDidEndDocument:(NSXMLParser *)parser
方法来进行本地xml文件的解析 结果出现了如题的问题。
问题核心:
通过上述遇见的问题以及我网上搜集的资料发现当你在NSXMLParserDelegate回调方法中再进行解析的话就会出现这个问题,问题直译过来:NSXMLParser类不支持折返解析。
当你用这个类解析完上个xml文件的时候,此时NSXMLParser现在是线程安全的,然而,它是不可重入的给定线程。
解决方法:
重新开启一个线程来解析另一个xml,code如下:
dispatch_async(dispatch_get_global_queue(0, 0), ^{
if ([_localResParser parse]) {
NSLog(@"OK!");
}
else
{
NSLog(@"%@",_localResParser.parserError);
}
});