使用主键(Swift)更新领域对象
我正在尝试使用主键更新/添加到领域数据库。我使用Realm文档中的以下代码片段:使用主键(Swift)更新领域对象,swift,realm,primary-key,Swift,Realm,Primary Key,我正在尝试使用主键更新/添加到领域数据库。我使用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) } 但当
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'
我有点困在这里,所以任何帮助都将非常感谢 您正在使用的方法不支持使用字典更新,我认为您正在尝试使用
create(\uu:value:update:)
version
try! realm.write {
realm.create(Person.self, value: person, update: true) // here person is dictionary with attributes for updating person
}
您也可以使用add(uquo:update:)
方法,但它要求您将领域对象
传递给它
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
}
是官方领域文档。您正在使用的方法不支持字典更新,我认为您正在尝试使用
创建(\uuu:值:更新:)
版本
try! realm.write {
realm.create(Person.self, value: person, update: true) // here person is dictionary with attributes for updating person
}
您也可以使用add(uquo:update:)
方法,但它要求您将领域对象
传递给它
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
}
是官方的领域文档。第一种方法非常有效。让人困惑的是(至少对我来说)这个领域在这个页面上的描述是不同的:但是,嘿,现在它工作了,所以谢谢你不推荐使用add(\ ux:update:)'选项:Pass.error、.modified或.all,而不是布尔值。错误等于假,一切都等于真。第一种方法工作得很好。让人困惑的是(至少对我来说)这个领域在这个页面上的描述是不同的:但是,嘿,现在它工作了,所以谢谢你不推荐使用add(\ ux:update:)'选项:Pass.error、.modified或.all,而不是布尔值。错误等同于false和。全部等同于true。