1

我正在使用带有 NSXMLParser 的调度队列来获取 xml 数据并对其进行解析。

我正在使用的代码如下:

dispatch_async( dispatch_get_global_queue(0, 0), ^{

            NSURL *urlNew = [NSURL URLWithString:url_GetData];
            NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:urlNew];
            xmlParser.delegate = self;
            // call the result handler block on the main queue (i.e. main thread)
            dispatch_async( dispatch_get_main_queue(), ^{
                // running synchronously on the main thread now -- call the handler
                [xmlParser parse];


            });
        });

但是当服务器响应时间过长时,我需要显示错误警报消息。我试图在默认委托方法中显示警报,但没有按预期工作。

请帮助我为上述代码设置 30 秒超时。

如果我不使用调度队列,UI 将被冻结,直到收到响应。

有没有办法在上面的代码片段中实现超时。

谢谢。

4

0 回答 0