RaptureXML有点慢

我最近从TBXML切换到RaptureXML,即使拉入信息更容易,当我点击包含我的XML表视图的标签栏button时,有一个明显的延迟。

在我的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]]; }]; } 

有什么我可以做的,以加快? 另外,当我分配我的行数为[事件计数]时,我得到19行,我应该只得到6请帮助。

直到在正确的轨道上。 你需要在后台线程上parsing。 做如下的事情:

 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ [self loadURL]; dispatch_async(dispatch_get_main_queue(), ^{ [tableView reloadData]; }); }); 

你会注意到我正在重新加载主线程上的tableview。 在后台线程上更新界面元素是有点不行的。