从XML数组加载时UITableView为空

时间:2013-03-05 15:08:07

标签: iphone objective-c xcode4.5

我的数组填满后,我的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设置为同时包含MapViewUITableView;两者都被设置为代表。

在我的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,但如果我点击后退,然后再次点击地图,则会填充。 (但需要几秒钟)

1 个答案:

答案 0 :(得分:0)

要检查的事项

  • 第一次加载时用于tableview数据源的数组中的值是什么?
  • Tableview数据源和委托方法是正确的 在IBOutlets中实现或连接?

如果数组为空,则问题在于第一次加载

时解析器

在一个单独的线程中进行调用,以避免UI阻塞,并在解析完成时在UI中包含一个活动,并在数组调用中重新加载数据