iOS8上的NSXMLParser - NSXMLParser不支持可重入解析 [英] NSXMLParser on iOS8 - NSXMLParser does not support reentrant parsing

查看:139
本文介绍了iOS8上的NSXMLParser - NSXMLParser不支持可重入解析的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有NSXMLParser问题,我试过 iOS8 NSXMLParser崩溃这个话题,但我真的没有得到解决方案。

I have NSXMLParser problem, and i tried iOS8 NSXMLParser crash this topic, but i really did not get the solution.

我正在创建另一个NXSMLParser委托并在另一个类中设置其委托。

I am creating another NXSMLParser delegate and setting its delegate in another class.

你能不能请一步一步告诉我该怎么做?我很困惑。

Could you please tell me what to do exactly, step by step? I am so confused.

这是我的代码;

这些代码行在STXMLParser中

These lines of codes are inside the STXMLParser

   STXMLParser2 *stXMLParser2 = [[STXMLParser2 alloc]init];    

    stXMLParser2.xmlParser = [[NSXMLParser alloc] initWithData:responseLoader.xmlData];
    [stXMLParser2.xmlParser setDelegate:self];
    [stXMLParser2.xmlParser setShouldResolveExternalEntities:YES];
    [stXMLParser2.xmlParser parse];


推荐答案

您可以尝试以下代码:

dispatch_queue_t reentrantAvoidanceQueue = dispatch_queue_create("reentrantAvoidanceQueue", DISPATCH_QUEUE_SERIAL);
    dispatch_async(reentrantAvoidanceQueue, ^{
        STXMLParser2 *stXMLParser2 = [[STXMLParser2 alloc]init];    
        stXMLParser2.xmlParser = [[NSXMLParser alloc] initWithData:responseLoader.xmlData];
        [stXMLParser2.xmlParser setDelegate:self];
        [stXMLParser2.xmlParser setShouldResolveExternalEntities:YES];
        [stXMLParser2.xmlParser parse];
    });
    dispatch_sync(reentrantAvoidanceQueue, ^{ });

这篇关于iOS8上的NSXMLParser - NSXMLParser不支持可重入解析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆