【问题标题】:Delete object on Realm, changes order of objects删除领域上的对象,更改对象的顺序
【发布时间】:2016-09-13 08:26:09
【问题描述】:

您好,我第一次使用领域并尝试删除对象,删除工作正常,但它改变了对象的顺序(它删除了对象,列表中的最后一个对象位于已删除对象的索引处)。如果有人遇到过同样的情况,请解释一下。

【问题讨论】:

  • 对Realm不熟悉,但我猜这组对象是一个set,它是无序的,你不应该依赖顺序。一个常见的解决方案是查询已排序的对象或在获取对象时对其进行排序(通常这种排序发生在数据库中的 id 列上)。
  • 据我所知,获取时的领域对象是无序的,您应该在获取后对它们进行排序

标签: ios swift realm


【解决方案1】:

Realm 中的对象本身并不是有序的。如果您希望它们按特定顺序排列,则必须对提供该顺序的属性进行排序,或者将它们存储在 RLMArray/List 属性中,这是一个有序类型。

【讨论】:

    【解决方案2】:

    我对你的情况有一个想法。我在我的项目中做到了,而且效果很好。这个想法是:

    1. 从 Realm 数据库中获取所有对象。
    2. 把它放在另一个不是领域类型的数组中。
    3. 您可以使用刚刚创建的数组修改任何您想要的内容。
    4. 从 Ream 数据库中删除所有对象。
    5. 将所有对象从 Array 保存到 Realm 数据库。

    P/s:它也适用于 Coredata。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多