使用主键更新域对象(快速)

时间:2018-08-26 09:41:21

标签: swift realm primary-key

我正在尝试使用主键更新/添加到Realm数据库。我使用Realm文档中的以下代码段:

var person = ["personID": "My-Primary-Key", "name": "Tom Anglade"]

// Update `person` if it already exists, add it if not.
let realm = try! Realm()
try! realm.write {
    realm.add(person, update: true)
}

但是当我尝试实现它时,它返回此错误:

Cannot convert value of type '[String : String]' to expected argument type 'Object'

我有点卡在这里,所以任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

您使用的方法不支持Dictionary的更新,我认为您正在尝试使用create(_:value:update:)版本。

try! realm.write {
    realm.create(Person.self, value: person, update: true) // here person is dictionary with attributes for updating person
}

您还可以使用add(_:update:)方法,但是它要求您将领域 Object传递给它。

let person = Person()
person.name = dict["name"]
... 
let realm = try! Realm()
try! realm.write {
    realm.add(person, update: true) // here person is Object of type Person 
}

Here是Realm的官方文档。