Обновление модели Realm Swift

Я новичок в Realm и прошу Вас помочь мне. Я создал модель:

class UserModel: Object {

    dynamic var email = ""
    dynamic var facebook_id = ""
    dynamic var google_id = ""
    dynamic var id = 0
    dynamic var name = ""
    dynamic var photo = ""
    dynamic var someinfo = ""
    dynamic var twitter_id = "" 

}

при входе в приложение я вижу свою информацию о UserProfileController. Также у меня есть EditProfileController, где я могу изменить некоторую информацию о себе. Поэтому, когда я успешно изменю его, я хочу обновить свою модель Realm и попытаться сделать это:

    let realm = try! Realm()

    try! realm.write {
        realm.create(UserModel.self, value: ["name": self.editEmail.text!, "email": self.editEmail.text!], update: true)
    }

но, к сожалению, я вижу это сообщение:

''UserModel' does not have a primary key and can not be updated'

Что делать, если я хочу обновить несколько свойств одновременно? Могу ли я? это с primaryKey? Или... Как можно обновить модель Realm без primaryKey?

2 ответов


проблема заключается в этом update: true, Он используется для автоматической замены объекта, который имеет тот же первичный ключ в вашей области, если ваш объект не имеет первичного ключа, установите update to false тогда он будет работать и всегда создаст новый объект


вам нужно установить первичный ключ для вашей UserModel.

https://realm.io/docs/swift/latest/#primary-keys