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);
        }
    });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容