我在一个 View 上有一个 UITableView,它在应用程序启动时加载数据,然后当用户在框中输入文本并点击按钮时,我重新查询数据库,重新填充原始 NSMutableArray存储表的数据。
所有这些都运行良好。在一些日志语句中,我可以看出数组具有正确的信息,numberOfRowsInSection方法返回正确的计数,并且在调用重新加载后被调用。
但是,cellForRowAtIndexPath 永远不会被调用第二次(重新加载后),并且表数据也永远不会更新。
我花了几个小时在网上搜索,但没有找到任何有帮助的东西。有人可以帮忙吗?
所有代码位于: http://github.com/botskonet/inmyspot
正在调用特定的重新加载: http://github.com/botskonet/inmyspot/blob/master/Classes/InMySpotViewController.m
大概是94号线
来自: http://github.com/botskonet/inmyspot/blob/master/Classes/PlateFormViewController.m
大致为第101行
更多信息:一旦新数据被添加到可变数组中,如果我尝试开始滚动表格,它最终会消失:
“由于未捕获的异常‘NSRangeException’而终止应用程序,原因:‘*** -[NSCFArray objectAtIndex:]: 索引 (29) 超出界限 (29)”
我认为这意味着表格单元格在数组中找不到任何数据来匹配滚动位置,这似乎是因为数组有新数据,但表格没有。
最佳答案
我也看到了同样的问题。我的问题是类似的:我有一个 UIViewController 子类 (MyViewController)
,其中包含一些内容,包括对我的 UITableViewController (MyTableViewController)
子类的引用。在MyViewController.xib
中,为了确保MyViewController
加载的tableView与MyTableViewController
中加载的tableView是一样的,在 Interface Builder 中,我连接了 MyViewController
中 tableView 的引用,并使其指向 MyTableViewController 的
View 属性。
关于iphone - tableView reloadData 上未调用 cellForRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2429670/