我试图找到正确的方法来更新领域对象中的列表。例如:
class Person: Object {
@objc dynamic var id: String = ""
let children = List<Child>()
}
//Adding an item to the list
func add(child: Child, _ completion: (DBError?) -> Void) {
do {
let ctx = try Realm()
if let person = ctx.objects(Person.self).last {
try ctx.write({
person.children.append(child)
completion(nil)
})
} catch {
completion(DBError.unableToAccessDatabase)
}
}
这似乎对添加元素有效。那么,如何更新数组中的单个元素并替换整个数组以确保其持续存在?
最佳答案
基本上,我们的想法是用相同的主键创建一个新的对象,其update:
值等于true
,并将其附加到List
:
let childValue = // child
let child = realm.create(Child.self, value: childValue, update: true)
person.children.append(child)
此外,这是非法的:
let var children = List<Child>()
var
应移除。
关于swift - 如何在Realm DB Swift中更新对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49546847/