gpt4 book ai didi

iphone - 如何使用 RaptureXML 和 AFNetworking 在 UITableView 上动态显示解析的 XML 内容?

转载 作者:行者123 更新时间:2023-12-03 21:02:02 24 4
gpt4 key购买 nike

我正在使用RaptureXML和包装AFRaptureXMLRequestOperation集成AFNetworkingRaptureXML .

下面的代码工作正常。一切顺利,下载、解析并显示 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/

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