我目前有一个关于块的问题,它自己从XML文档加载报告的应用程序。解析器的工作原理,但我有一个问题,当它加载到mainArray和块重新加载完成后的数据。我已尝试使用信号量在流程结束时关闭事件。但是因为XML在加载时速度不是很快,所以mainArray被填充并且UITableView的数据被重新加载。我目前正在使用:等待块完成重新加载UITableView数据
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, kNilOptions), ^{
XmlParser *xml = [[XmlParser alloc]init];
NSURL *url = [NSURL URLWithString:kStaticURL];
[xml loadXML:url];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 * NSEC_PER_SEC)), dispatch_get_main_queue(),^{
mainArray = [xml parsedArray];
[UiTableView reloadData];
});
});
然后这将正确填充阵列并加载我想要的对象。 我将如何得到这个代码:
mainArray = [xml parsedArray];
[UiTableView reloadData];
来执行后
XmlParser *xml = [[XmlParser alloc]init];
NSURL *url = [NSURL URLWithString:kStaticURL];
[xml loadXML:url];
在此先感谢。
编辑:我正在使用TBXML来解析XML feed到[xml parsedArray];特别是TBXML + HTTP.h & .m文件来获取数据。
尝试使用XmlParser委托方法。 – 2014-09-05 08:26:29
我忘记提及我正在使用TBXML加载XML提要。 – TinMan7757 2014-09-05 08:27:42
'XmlParser'是否以异步方式工作? – KudoCC 2014-09-05 08:28:53