Я использую область для обработки постоянных данных из массива:
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