iphone - RaptureXML 有点慢

标签 iphone ios xml

我最近从 TBXML 切换到 RaptureXML,尽管提取信息要容易得多,但当我点击包含我的 xml 表格 View 的选项卡栏按钮时,会有明显的延迟。

在我的 viewDidLoad 方法中,我有以下内容“

events = [[NSMutableArray alloc] init];

[self loadURL];

我的 loadURL 方法如下:

- (void)loadURL {

RXMLElement *rootXML = [RXMLElement elementFromURL:[NSURL URLWithString:@"http://api.somexml.com/xml"]];

[rootXML iterateWithRootXPath:@"//event" usingBlock:^(RXMLElement *event) {
    [events addObject:[NSArray arrayWithObjects:
                       [event attribute:@"uri"],
                       [event attribute:@"displayName"],
                       [event attribute:@"type"],
                       nil]];  
}];

[rootXML iterateWithRootXPath:@"//location" usingBlock: ^(RXMLElement *location) {
    [events addObject:[NSArray arrayWithObjects:
                       [location attribute:@"city"],
                       [location attribute:@"lat"],
                       [location attribute:@"lng"],
                       nil]]; 
}];

[rootXML iterateWithRootXPath:@"//start" usingBlock:^(RXMLElement *start) {
    [events addObject:[NSArray arrayWithObjects:
                       [start attribute:@"time"],
                       [start attribute:@"date"],
                       nil]]; 
}];



}

我可以做些什么来加快速度吗?此外,当我将我的行数分配为 [events count] 时,我得到了 19 行,而我应该只得到 6 行。请帮忙。

最佳答案

蒂尔走在正确的轨道上。您需要在后台线程上进行解析。执行如下操作:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    [self loadURL];

    dispatch_async(dispatch_get_main_queue(), ^{
        [tableView reloadData];
    });
});

您会注意到我正在主线程上重新加载 TableView 。在后台线程上更新界面元素有点禁忌。

关于iphone - RaptureXML 有点慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10370153/

相关文章:

javascript - Phonegap 文本区域滚动

ios - 当 UILabel 在 iOS 中的表格单元格内被截断时添加 "see more"文本

iphone - 我如何知道编译器是否启用了 ARC 支持?

java - 无法编辑/更新 xml 文件

java - 如何使 photoview 库与 viewpager 一起工作

iphone - UIScrollView - 一种使一个 ScrollView 小于另一个 ScrollView 的方法?

iphone - UITextField 字体样式没有改变

ios - 在 iPhone 上使用 splitviewcontroller 先描绘细节 View

ios - 苹果为何在压缩.ipa之前先对其进行加密?

java - 如何评估这棵树中的表达式?