在阅读docs时,它说我应该通过字典更新单个(或多个)字段:
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'
我想在整个字典中动态更新多个字段,这可能吗?
答案 0 :(得分:2)
我不认为教程是正确的,即使它来自Realm工程师编写的官方网站。如果你看一下RealmSwift的official documentation,你可以看到add
函数的两个版本接受一个子类Object
的参数。
您正在寻找并且应该在教程中提及的功能是public func create<T: Object>(_ type: T.Type, value: Any = [:], update: Bool = false) -> T
,您可以使用它来更新Dictionary
中的现有对象。
您的代码应如下所示:
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.create(Person.self, value: person, update: true)
}