ios – 使用NSXMLParser仅解析前十个帖子,然后分别解析下一个帖子

ios – 使用NSXMLParser仅解析前十个帖子,然后分别解析下一个帖子,第1张

概述我正在使用NSXmlParser来解析rss feed.到目前为止一切运作良好. 我预计rss feed最终会包含几十个/几百个帖子.我目前的解决方案是读取整个RSS Feed并显示结果.但是我想只阅读前十个帖子(以防止它解析可能有数百个项目).然后在稍后的时间(例如当用户到达表的末尾时)来解析接下来的十个帖子. 所以我的问题是如何解析前十个帖子,然后解析接下来的十个帖子,然后解析接下来的十个帖子 我正在使用NSXmlParser来解析RSS Feed.到目前为止一切运作良好.

我预计RSS Feed最终会包含几十个/几百个帖子.我目前的解决方案是读取整个RSS Feed并显示结果.但是我想只阅读前十个帖子(以防止它解析可能有数百个项目).然后在稍后的时间(例如当用户到达表的末尾时)来解析接下来的十个帖子.

所以我的问题是如何解析前十个帖子,然后解析接下来的十个帖子,然后解析接下来的十个帖子等等……

这是我用来获取所有帖子的内容:

- (voID)parseXMLfileAtURL:(Nsstring *)URL{       myArray = [[NSMutableArray alloc] init];    //convert the path to a proper NSURL or it won't work    NSURL *xmlURL = [NSURL URLWithString:URL];    RSSParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlURL];    [RSSParser setDelegate:self];    [RSSParser parse];}- (voID)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError {    //error}- (voID)parser:(NSXMLParser *)parser dIDStartElement:(Nsstring *)elementname namespaceURI:(Nsstring *)namespaceURI qualifIEdname:(Nsstring *)qname attributes:(NSDictionary *)attributeDict{                currentElement = [elementname copy];    if ([elementname isEqualToString:@"item"]) {        //clear out our story item caches...        item = [[NSMutableDictionary alloc] init];    }}- (voID)parser:(NSXMLParser *)parser dIDEndElement:(Nsstring *)elementname namespaceURI:(Nsstring *)namespaceURI qualifIEdname:(Nsstring *)qname{         if ([elementname isEqualToString:@"item"]) {        // save values to an item,then store that item into the array...    }}- (voID)parser:(NSXMLParser *)parser foundCharacters:(Nsstring *)string{    // save the characters for the current item...}- (voID)parserDIDEnddocument:(NSXMLParser *)parser {    [mytable reloadData];}
解决方法 在其他人不同的风格答案中,我想做出贡献,如果你的解析器花了很长时间来解析10到100之间的差异是一个重要的人类可测量的数量,那么你做错了.最好是:

>配置您的解析代码以查找减速(或找到更高性能的XML库)
>在后台线程上解析整个批次
>仅向用户显示前10个,
>随时显示内存中的其余部分.

这是一个双赢,因为一次解析它可以使代码更简单,更少的错误,并且一次“加载”(显示)一个RSS“页面”将是闪电般的快速,你的用户会爱你(见Instagram的例子关于伪造速度)

总结

以上是内存溢出为你收集整理的ios – 使用NSXMLParser仅解析前十个帖子,然后分别解析下一个帖子全部内容,希望文章能够帮你解决ios – 使用NSXMLParser仅解析前十个帖子,然后分别解析下一个帖子所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1025200.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存