gpt4 book ai didi

iphone - 在解析 XML 之前不显示进度 HUD

转载 作者:行者123 更新时间:2023-11-28 18:40:11 27 4
gpt4 key购买 nike

我实际上是在使用 NSXMLParser 类来解析托管在服务器上的 XML 文件。当解析器正在做他的工作时,我想显示 HUD 在那里抓取的进度:https://github.com/jdg/MBProgressHUD

这是我显示进度 HUD 的方式:

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:NO];
hud.labelText = @"Update";

然后我使用我创建的类启动解析器:

[dm parseXMLAtURL:[NSURL URLWithString:@"myXML.xml.php"]];

这是完整的类方法:

- (void)parseXMLAtURL:(NSURL *)XMLUrl {
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:XMLUrl];
[parser setDelegate:self];
NSLog(@"start");
[parser parse];
}

我显然在解析 XML 之前调用了 MBProgressHUD 但没有办法:当解析器完成其工作时显示 MBProgressHUD

我认为这个问题可能是由于堆栈管理造成的,当他在其他人之前完成最长的工作时(解析完整的 XML 需要 6-7 秒)我是对的还是可能是另一回事?如果我是对的,我该如何管理它?

最佳答案

你说得对,这与时间有关。因为所有都是在同一个线程上完成的。只需将 XML 的解析延迟几毫秒:

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:NO];
hud.labelText = @"Update";
[dm performSelector:@selector(parseXMLAtURL:) withObject:[NSURL URLWithString:@"myXML.xml.php"] afterDelay:0.1f];

不如在新线程上运行 XML 解析好,但它会工作。

关于iphone - 在解析 XML 之前不显示进度 HUD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11901505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com