领域:重新排列对象列表

时间:2015-10-11 20:14:46

标签: ios swift swift2 realm

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

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

如果它是一个随意的Swift数组。

但是对于List in 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?
}

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

1 个答案:

答案 0 :(得分:2)

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

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