我正在尝试解析XML文档并将数组加载到表视图中。
在init中,我调用initializeDatabase,它生成一个URLRequest和Connection。然后我调用parseXML,它解析文档。一切似乎都运作良好。
完成后我想将结果数组加载到表视图中。没发生。
我已经在每个方法中放置了NSLog语句来跟踪它,包括表视图数据源方法。
2011-02-01 07:29:17.770 Project [1664:207] initializeDatabase:
2011-02-01 07:29:17.814项目[1664:207] numberOfSections
2011-02-01 07:29:17.815 Project [1664:207]导致numberOfRowsInSection :( null)
2011-02-01 07:29:18.560项目[1664:207]连接已完成 2011-02-01 07:29:18.562项目[1664:207] connectionDidFinishLoading:
2011-02-01 07:29:18.562项目[1664:207] parseXML称为
2011-02-01 07:29:18.563 Project [1664:207] parserDidStartDocument
2011-02-01 07:29:18.564 Project [1664:207] parserDidEndDocument:
2011-02-01 07:29:18.564项目[1664:207]结果:“ProjectData:0x4e461b0”
未调用cellForRowAtIndexPath。我不确定为什么。
有什么想法吗?
库尔特
答案 0 :(得分:1)
听起来你需要在解析数据后在表视图上运行方法reloadData。重新加载数据会使表视图询问其数据源应显示的行数。表视图在viewDidLoad上自动执行此操作,但在您的情况下,此时您没有要显示的任何数据。因此,在parserDidEndDocument中,运行[tableView reloadData];
其他解决方案,确保委托和数据源都设置为正确的实例。
答案 1 :(得分:0)
您还可以使用NSArrayController和绑定。将contentArray设置为已解析数据的数组,并绑定每列的VALUE。确保tableView上的dataSource未设置为任何内容。你现在不必每次都调用reloadData。