2015-10-11 2 views
0

Скажите, пожалуйста, как изменить элементы списка объектов в списке по индексу? То есть Я смотрю что-то вродеЦарство: переупорядочивающий список объектов

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? 
} 

Но как вставить элемент в нужном месте? Может быть, есть правильный способ перемещения элементов области одного и того же типа (класса) по индексу? Спасибо заранее!

ответ

2

Вы не можете сделать это с результатами запроса, так как они неупорядочены (или в определенном порядке, если вы их отсортируете). Но если вы поместите их в список Realm (который можно сохранить как член в объекте Realm), вы можете использовать методы move и swap для изменения порядка элементов.

Вот это API Docs для типа List: https://realm.io/docs/swift/latest/api/Classes/List.html

Смежные вопросы