使用主键更新领域对象 (Swift)

Updating Realm Object With Primary Key (Swift)

我正在尝试 update/add 使用主键访问 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)
}

但是当我尝试实现它时,它 returns 这个错误:

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

我有点被困在这里,非常感谢任何帮助!

您使用的方法不支持使用词典更新,我认为您尝试使用 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:) 方法,但它需要您将 Realm 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 文档。