更新模型Realm Swift

时间:2016-09-14 07:58:48

标签: ios swift realm

我是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 = "" 

}

当我登录app时,我可以在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做到这一点吗?要么... 如何在没有primaryKey的情况下更新Realm模型?

2 个答案:

答案 0 :(得分:6)

问题在于update: true,它用于自动替换您领域中具有相同主键的对象,如果您的对象没有主键,则将update设置为{{1然后它将工作并始终创建新对象

答案 1 :(得分:0)

您需要为UserModel设置主键。

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