领域:重新排列对象列表
Realm: rearranging list of objects
请告诉我,如何按索引重新排列 Realm 对象列表中的项目? IE。我看起来像
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?
}
但是如何在合适的地方插入元素呢?可能有一种正确的方法如何通过索引移动相同类型(class)领域的元素?
提前致谢!
您不能对查询结果执行此操作,因为它们是无序的(或者如果您对它们进行排序,则按特定顺序排列)。但是,如果将它们放入 Realm List(可以将其作为成员存储在 Realm 对象中),则可以使用 move
和 swap
方法对元素重新排序。
这是 List
类型的 API 文档:https://realm.io/docs/swift/latest/api/Classes/List.html
请告诉我,如何按索引重新排列 Realm 对象列表中的项目? IE。我看起来像
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?
}
但是如何在合适的地方插入元素呢?可能有一种正确的方法如何通过索引移动相同类型(class)领域的元素? 提前致谢!
您不能对查询结果执行此操作,因为它们是无序的(或者如果您对它们进行排序,则按特定顺序排列)。但是,如果将它们放入 Realm List(可以将其作为成员存储在 Realm 对象中),则可以使用 move
和 swap
方法对元素重新排序。
这是 List
类型的 API 文档:https://realm.io/docs/swift/latest/api/Classes/List.html