更新Realm主键值swift

时间:2016-07-22 08:57:58

标签: ios database swift realm

我使用Realm作为我的iOS应用程序和桌面我有一个主键"名称"

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

现在当它尝试更新名称时会抛出错误

app?.name = newName

错误是

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

我如何解决这个问题?

这就是我声明主键的方式

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

1 个答案:

答案 0 :(得分:4)

使用primary key插入对象后,无法对其进行修改:

来自Realm Docs

  

主键被添加到Realm中,主键无法更改。

这使您几乎没有选择:

  • 删除并重新插入对象
  • 将主键更改为无法更改的内容,例如id
  • 省略Primary Key。如果您没有定义主键,则表示您没有主键,这意味着您可以为此属性设置多个具有相同值的对象,并且不会被此属性编入索引。