有两个实体Parent
和 Child
,这是一对多的关系。一位 parent 和许多 child 。
我用 EditMode
删除Child
数据如:
@ObservedObject private var db = CoreDataDB<Child>(predicate: "parent")
var body: some View {
VStack {
Form {
Section(header: Text("Title")) {
ForEach(db.loadDB(relatedTo: parent)) { child in
if self.editMode == .active {
ChildListCell(name: child.name, order: child.order)
} else {
...
}
}
.onDelete(perform: self.db.deleting) <--- How to update CoreData when delete occurs in this line
}
}
}
}
deleting
方法在另一个类中定义,例如:public func deleting(at indexset: IndexSet) {
CoreData.executeBlockAndCommit {
for index in indexset {
CoreData.stack.context.delete(self.fetchedObjects[index])
}
}
}
我还想更新
Parent
的其他属性和 Child
实体当onDelete
发生。怎么做?谢谢你的帮助。
最佳答案
这是可能的方法
Section(header: Text("Title")) {
ForEach(db.loadDB(relatedTo: parent)) { child in
if self.editMode == .active {
ChildListCell(name: child.name, order: child.order)
} else {
...
}
}
.onDelete { indices in
// make other update here ...
self.db.deleting(at: indices)
// ... or here
}
}
关于ios - 当 ForEach 中发生 onDelete 时如何更新其他 CoreData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62142837/