我的数组填满后,我的UITableView为空。但是,如果我单击后退按钮并返回其中。
如果我加载
xmlParser = [[XMLParser alloc] loadXMLByURL:@"http://google.com?xml.php?"];
进入ViewDidLoad
然后很好,但解析器需要几秒钟。
所以我已将该行添加到:
- (void)viewDidAppear:(BOOL)animated {
if ([[xmlParser branch] count] == 0) {
xmlParser = [[XMLParser alloc] loadXMLByURL:@"http://google.com?xml.php?"];
}
}
原因是因为我希望在MapView
首先加载时解析XML。
我的mainViewController设置为同时包含MapView
和UITableView
;两者都被设置为代表。
在我的ParserXML.m(xml有自己的NSobject文件)文件中我重新加载了表
- (void)parserDidEndDocument:(NSXMLParser *)parser {
NSLog(@"all done!");
NSLog(@"stories array has %d items", [_branch count]);
tableViews = [Maplocator alloc];
[tableViews.tableView reloadData];
}
我的注释已填入MapView
但未填写UITableView
,但如果我点击后退,然后再次点击地图,则会填充。 (但需要几秒钟)
答案 0 :(得分:0)
要检查的事项
如果数组为空,则问题在于第一次加载
时解析器在一个单独的线程中进行调用,以避免UI阻塞,并在解析完成时在UI中包含一个活动,并在数组调用中重新加载数据