ios - 更新模型 Realm Swift

标签 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 = "" 

}

当我登录到应用程序时,我可以在 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 模型?

最佳答案

问题出在这个update: true,它用于自动替换你 Realm 中具有相同主键的对象,如果你的对象没有主键,设置update 设置为 false 然后它将起作用并始终创建新对象

关于ios - 更新模型 Realm Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39485302/

相关文章:

ios - 在 Swift 中使用 Google Place Photos 请求显示图像

java - 如何将 Realm 结果转换为数组并传递给另一个 Activity ?

ios - Swift Realm异常

Swift Realm 在写入 block 中重新添加对象时陷入困境

ios - 旋转问题后翻转图像(需要同时执行两项操作,只执行一项)

generics - 使泛型类型符合 Swift 扩展中的协议(protocol)

ios - 使用本地时区推送通知

ios - 如何将文件添加到应用组共享目录?

ios - 导航 Controller 在第二个 View Controller 中为零

ios - 为什么 rightRevealToggle 在 'SWRevealViewController' 中什么都不做?