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。 在后台线程上更新界面元素是有点不行的。