Realm Swift - Как удалить элемент в определенной позиции индекса? - PullRequest
0 голосов
/ 17 декабря 2018

Я храню простой список идентификаторов в виде идентификаторов GUID в Realm, но хотел бы иметь возможность удалять объект в определенной позиции индекса.

Так, например, я хочу удалить 04b8d81b9e614f1ebb6de41cb0e64432 в позиции индекса 1Как это может быть достигнуто?Нужно ли добавлять первичный ключ или есть способ удалить элемент напрямую, используя указанную позицию индекса?

Results<RecipeIds> <0x7fa844451800> (
    [0] RecipeIds {
        id = a1e28a5eef144922880945b5fcca6399;
    },
    [1] RecipeIds {
        id = 04b8d81b9e614f1ebb6de41cb0e64432;
    },
    [2] RecipeIds {
        id = cd0eead0dcc6403493c4f110667c34ad;
    }
)

Кажется, что это должен быть простой запрос, но я не могу найтилюбая документация по нему.Подойдет даже указатель в правильном направлении.

1 Ответ

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

Results автоматически обновляются, и вы не можете напрямую изменять их.Вам необходимо обновить / добавить / удалить объекты в вашем Realm, чтобы повлиять на состояние вашего Results экземпляра.

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

Предполагая, что экземпляр Results, показанный в вашем вопросе, хранится в переменной с именем recipes, вы можете сделать что-то вроде следующего:

let recipeToDelete = recipes.filter("id == %@","04b8d81b9e614f1ebb6de41cb0e64432")
try! realm.write {
    realm.delete(recipeToDelete)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...