【问题标题】:Realm: rearranging list of objects领域:重新排列对象列表
【发布时间】:2015-10-11 20:14:45
【问题描述】:

请告诉我,如何按索引重新排列 Realm 对象列表中的项目? IE。我看起来像

let movingElement = array[oldIndex]
array.removeAtIndex(oldIndex)
array.insert(movingElement, atIndex: newIndex)

如果是随便的 Swift 数组的话。

但对于 Realm 中的列表,我不能做同样的事情:

let realm = try! Realm()
var all = try! Realm().objects(element)
realm.write {
    all.removeAtIndex() // all of type 

另一种选择是

let realm = try! Realm()
let element = try! Realm().objects(Element)[oldIndex]
realm.write{
    realm.delete(element)
    realm.add(...)   // How to set index to place new object at?
}

但是如何在合适的位置插入元素呢?可能有一种适当的方法如何通过索引移动相同类型(类)领域的元素? 提前致谢!

【问题讨论】:

    标签: ios swift swift2 realm


    【解决方案1】:

    您不能对查询结果执行此操作,因为它们是无序的(或者如果您对它们进行排序,则按特定顺序)。但是如果将它们放入 Realm List(可以将其作为成员存储在 Realm 对象中),那么您可以同时使用 moveswap 方法对元素进行重新排序。

    这里是 List 类型的 API 文档:https://realm.io/docs/swift/latest/api/Classes/List.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多