我想在表格视图中添加新值。
我的tableView:cellForRowAtIndexPath:
有以下
if (cell == nil) { // do something }
当我删除顶部的if语句并使用reloadData
时,应用程序崩溃了。在使用reloadData
之前,是否需要清除表中的旧值?如果是这样的话?
感谢
修改
对不起,我并不是说reloadData
放在tableView:cellForRowAtIndexPath:
里面。我把它放在另一个方法中并从if (cell == nil) { // do something }
tableView:cellForRowAtIndexPath:
答案 0 :(得分:2)
通过调用
中的reloadData来生成无限循环tableView:cellForRowAtIndexPath:
答案 1 :(得分:2)
您应该阅读TableView Programming Guide以熟悉这些概念。 reloadData
是一种最终调用tableView:cellForRowAtIndexPath:
的方法。
答案 2 :(得分:1)
无需在表格视图中清除数据。您可能希望确保在UITableViewCell子类中正确实现-prepareForReuse
,以便重用的单元格不显示旧数据。
BTW不清楚为什么要删除if (cell == nil)
位。如果没有要重用的单元格(出列),则需要创建一个新单元格。如果你不这样做,你将返回nil,这将导致UITableView中的异常。
答案 3 :(得分:0)
您(99%的时间)无法从reloadData
致电tableView:cellForRowAtIndexPath:
。
这是因为reloadData
最终会调用tableView:cellForRowAtIndexPath
,因此您将获得一个永无止境的循环。
你需要解释更多你想要做的事情(以及一些额外的代码会很好),以便进一步回答这个问题。
答案 4 :(得分:0)
reloadData调用所有tableView数据源,因此你无法在cellForRowAtIndexPath中调用它,它将进行无限循环。