我正在使用RaptureXML
和包装AFRaptureXMLRequestOperation
集成AFNetworking
和RaptureXML
.
下面的代码工作正常。一切顺利,下载、解析并显示 UITableView
中的内容。 .
当我在后台进行下载和解析时,我更新了 UITableView
关于Main Thread
,异步。
唯一的问题是,UITableView 的内容仅在解析 XML 的所有元素并将其插入适当的 NSMutableArrays
后才显示。 ,有时需要一段时间。
我的问题:
有没有办法动态显示 UITableView
的内容当它们被下载和解析时,NSMutableArrays
正在填充数据,例如使用 JASON
的示例来自 Twitter 的文件?
有代码:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self downloadParsePlayListXML];
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
});
- (void)downloadParsePlayListXML {
NSString *url = @"http://example.net/playlist/xmlfiles/playlist.xml";
AFRaptureXMLRequestOperation *operation = [AFRaptureXMLRequestOperation XMLParserRequestOperationWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]] success:^(NSURLRequest *request, NSHTTPURLResponse *response, RXMLElement *XMLElement) {
[XMLElement iterateWithRootXPath:@"//program" usingBlock: ^(RXMLElement *program) {
[self.programs addObject:[program attribute:@"name"]];
[self.speakers addObject:[program child:@"speaker"].text];
}];
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, RXMLElement *XMLElement) {
// Handle Error
}];
[operation start];
}
非常感谢您的帮助!
最佳答案
直到今天晚些时候我才能对此进行测试,但我会尝试一下。注意:我不熟悉 RaptureXML。
首先,请参阅几天前关于解析 XML 的这篇文章。 https://stackoverflow.com/a/16047964/1710611
然后,在解析过程中,每次到达元素末尾时,您都将其添加到数组(用作 UITableView
数据源)并刷新表格。
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"YOURTAG"]) {
// finished getting the data in <YOURTAG>
// do something now that you've got your data retrieved
if (self.currentProperty) {
[YOURDATASOURCEARRAY addObject:self.currentProperty];
[tableView reloadData];
}
}
}
或者,您也可以尝试将 [tableView reloadData]
替换为:
[tableView beginUpdates];
[tableView insertRowsAtIndexPaths:YOURINDEXPATHARRAY withRowAnimation:YOURANIMATION];
[tableView endUpdates];
关于iphone - 如何使用 RaptureXML 和 AFNetworking 在 UITableView 上动态显示解析的 XML 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16106779/