Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用主键(Swift)更新领域对象_Swift_Realm_Primary Key - Fatal编程技术网

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

使用主键(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) } 但当

我正在尝试使用主键更新/添加到领域数据库。我使用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'

我有点困在这里,所以任何帮助都将非常感谢

您正在使用的方法不支持使用字典更新,我认为您正在尝试使用
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。