通过完全刷新数据来刷新 UITableView



我有一个视图,它显示了UITableView中的条目列表。该列表的数据是 NSArray。当用户在此视图上时,将对 Web 服务进行异步调用以检索最新条目。下载最新条目后,我会更新 NSArray,然后向通知中心发送通知。UITableView 正在侦听此事件,并将尝试重新加载表。但是使用这种方法,我得到一个错误,该错误位于"对象在读取过程中发生了变化"的行上。

在经历了关于 SO 的类似问题之后,我看到建议的方法是删除对象并在单个索引处添加对象,并要求表视图重新加载数据。

有没有办法完全替换数组并要求表视图重新加载数据?

UITableView 的 reloadData 方法应该可以解决问题。

来自苹果的文档:

调用此方法以重新加载用于构造 表,包括单元格、节页眉和页脚、索引数组以及 等等。为了提高效率,表视图仅重新显示那些 是可见的。如果表因以下原因而收缩,它会调整偏移量 重新加载。表视图的委托或数据源调用此 方法,当它希望表视图完全重新加载其数据时。它 不应在插入或删除行的方法中调用, 特别是在通过调用实现的动画块中 开始更新和结束更新

https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UITableView_Class/index.html#//apple_ref/occ/instm/UITableView/reloadData

如果你有Updated NSArray Object

然后你可以直接使用以下方法UITableView

[tableView reloadData]

最新更新