NSXMLParser does not support reentrant parsing 错误

今日遇到此问题的前提:

使用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);
        }
    });
    原文作者:暴走的格格巫
    原文地址: https://www.jianshu.com/p/51095a643f8a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞