我是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模型?
答案 0 :(得分:6)
问题在于update: true
,它用于自动替换您领域中具有相同主键的对象,如果您的对象没有主键,则将update
设置为{{1然后它将工作并始终创建新对象
答案 1 :(得分:0)
您需要为UserModel
设置主键。