我正在使用带有 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 将被冻结,直到收到响应。
有没有办法在上面的代码片段中实现超时。
谢谢。