【问题标题】:How to keep Realm data in the same order as entered如何保持领域数据与输入的顺序相同
【发布时间】:2017-05-01 01:53:52
【问题描述】:

我有一个应用程序,我需要按照输入的顺序保存数据。数据被输入到 List 属性中。一切都很好,直到我不得不删除一个项目。当删除发生时,列表中的最后一项将取代被删除的项。 UITableView 显示正确数量的项目,但与领域列表不同步。

如果我有数据,例如:

1、2、3、4、5、6

然后我删除:

3

领域数据如下所示:

1、2、6、4、5

tableview 如下所示:

1、2、4、5、6

领域数据的期望结果将与 tableview 输出匹配。

有什么办法可以在删除项目后保持数据的顺序不发生变化?

【问题讨论】:

  • Realm 总是按照添加的顺序返回项目。从您的问题来看,它似乎正在完成它的工作,因为 tableview 的顺序正确。您在哪里以及如何查看“领域数据”?
  • Realm 不会按照添加对象的顺序返回对象。返回对象的顺序是未定义的,并且正如原始问题所指出的,当对象被删除时可能会发生变化。
  • Ravi,我使用领域浏览器看到了变化。
  • 请分享您用于检索对象的代码,其中您以意外的顺序查看对象。

标签: swift realm


【解决方案1】:

领域中的对象本质上是无序的。如果您希望以您控制的特定顺序检索对象,您可以通过将它们插入到对象的 List 属性中,或对用于检索它们的 Results 进行排序来实现。

【讨论】:

  • 对象位于列表属性中。它们保持有序,直到其中一个对象被删除。那是顺序发生变化的时候。
  • 删除对象不会导致列表中对象的顺序发生变化。您是否期望添加到列表属性的对象会影响通过该列表属性以外的其他对象检索到的对象的顺序?
  • 谢谢,我终于学会了如何对结果进行排序!我在模型中添加了一个日期属性,创建了一个按日期排序的“结果”变量。 Realm Browser中的数据在删除后改变了数据的顺序,但是tableview以正确的顺序显示了正确的数据。
猜你喜欢
  • 1970-01-01
  • 2020-08-10
相关资源
最近更新 更多