iOS UITableView reloadData 仅更新我添加的最后一个条目,如何重新加载所有内容?

标签 ios objective-c uitableview

实际问题是我获取的数据来自 NSSet,当我更改集合时,由于它是无序的,最终条目并不总是相同的或我添加到集合中的最后一个对象。因此,当我调用 reloadData(并且有一个断点我可以告诉它只是更新/添加表中的最后一个单元格因为行数增加了 1)它经常发现错误的条目添加到新单元格并且我以重复项结束,我的新对象没有出现在表中。

这是 reloadData 的正确行为吗?如果是这样,我应该使用什么来确保所有数据都出现?我应该只删除所有行并重新开始,还是有办法只更新已经存在的行的属性?

编辑:我想我不清楚,在将数据提供给 tableView 之前,我将其转换为一个数组,但由于集合的性质,该数组的顺序永远不会相同。有人建议我订购阵列,但即使我这样做了,如果新项目不是订单中的最后一项,也不会出现。

最佳答案

您不应使用 NSSet 来提供 UITableView。由于 NSSet 未按索引排序,因此 UITableView 将无法正常运行。尝试切换到具有对象索引的 NSArray

关于iOS UITableView reloadData 仅更新我添加的最后一个条目,如何重新加载所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27427163/

相关文章:

ios - 我对调用目录处理程序扩展 Swift 3 CallKit 有疑问

ios - Firestore : How can I correctly order by string with accent characters?

ios - 类数组中的过滤结果(Swift 3)

iphone - Facebook 分享仅发布在我的墙上,而不是我 friend 的墙上 - ios

iphone - 将 TableView 转换为具有部分

ios - 默认情况下直接添加到数组

ios - “catch” block 无法访问

iphone - 如果更改编辑中的文本,UITextField 会崩溃

ios - 添加到数组后,我的模型中的属性将针对每个项目进行复制

ios - 重用具有多个数据源的 UITableView 的最佳设计模式是什么?