请告诉我,如何按索引重新排列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?
}
但是如何在适当的位置插入元素?可能有一个正确的方法如何通过索引移动相同类型(类)的域的元素? 提前谢谢!
答案 0 :(得分:2)
您无法对查询结果执行此操作,因为它们是无序的(如果您对它们进行排序,则按特定顺序)。但是,如果将它们放入Realm List(可以作为Realm对象中的成员存储),那么您可以使用move
和swap
方法重新排序元素。
以下是List
类型的API文档:https://realm.io/docs/swift/latest/api/Classes/List.html