/ / Aktualizuj Realm wartość klucza podstawowego swift - ios, database, swift, realm

Aktualizuj wartość klucza podstawowego Realm - ios, database, swift, realm

Im używam dziedziny dla mojej aplikacji na iOS, a dla tabeli mam klucz podstawowy "nazwa"

                let application  = Application()
application.domain = app.domain
application.name = app.name
realm.add(application)

teraz, gdy próbuje zaktualizować nazwę, generuje błąd

app?.name = newName

błąd jest

Primary key can"t be changed after an object is inserted.

Jak rozwiązać ten problem?

tak deklaruję klucz podstawowy

override static func primaryKey() -> String? {
return "name"
}

Odpowiedzi:

3 dla odpowiedzi № 1

Po wstawieniu obiektu za pomocą primary key nie możesz go modyfikować:

Od Realm Docs

klucz podstawowy został dodany do dziedziny, klucz podstawowy nie może zostać zmieniony.

Które pozostawiają Ci kilka opcji:

  • Usuń i ponownie wstaw obiekt
  • Zmień klucz podstawowy na coś, co się nie zmienia, na przykład id
  • Pomiń Primary Key. Jeśli nie definiujesz jednego, nie masz klucza podstawowego, co oznacza, że ​​możesz mieć więcej niż jeden obiekt o tej samej wartości dla tej właściwości i nie będzie on indeksowany przez tę właściwość.