Массив Результатов <>, изменяющий позиции своих элементов после удаления с использованием Realm - PullRequest
0 голосов
/ 14 декабря 2018

Я использую область для обработки постоянных данных из массива:

var listArray: Results<Category>?

Когда я удаляю первый элемент listArray, последний элемент моего массива перемещается в позицию 0. Есть ли способизмените это так, чтобы каждый элемент перемещался на «позицию-1», вместо этого?

Вот пример того, что происходит:

listArray перед удалением первого элемента («Элемент 0»):

Optional(Results<Category> <0x7f89dd637250> (
[0] Category {
    listName = Item 0;
    categoryColorHex = #EDF1F2;
    items = List<Item> <0x600001dd9b00> (

    );
},
[1] Category {
    listName = Item 1;
    categoryColorHex = #E57D22;
    items = List<Item> <0x600001dd8a20> (

    );
},
[2] Category {
    listName = Item 2;
    categoryColorHex = #A38570;
    items = List<Item> <0x600001dd8fc0> (

    );
}
)) 

После удаления «Item 0»:

Optional(Results<Category> <0x7f89dd637250> (
    [0] Category {
        listName = Item 2;
        categoryColorHex = #A38570;
        items = List<Item> <0x600001dd9050> (

        );
    },
    [1] Category {
        listName = Item 1;
        categoryColorHex = #E57D22;
        items = List<Item> <0x600001ddb840> (

        );
    }
))

Как видите, Item 2, который был последним элементом в моем массиве, теперь занимает первую позицию.Вот код для удаления вещей:

if listArray?[indexPath.row] != nil {
    do {
        try self.realm.write {
            self.realm.delete(listArray![indexPath.row])
        }} catch {
            print("error at editActionsForRowAt: \(error)")
    }
    //print("\(listArray) \n \n")
} 

Другие операции (сохранение и загрузка) работают просто отлично в области.

С уважением, FS

1 Ответ

0 голосов
/ 14 декабря 2018

Если вы не вызываете sorted(byKeyPath:) в экземпляре Results, порядок элементов не гарантируется после автоматического обновления Results.

Таким образом, для достижения ваших целейвам нужно отсортировать ваш экземпляр Results на основе одного из свойств Category.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...