ios - 当 ForEach 中发生 onDelete 时如何更新其他 CoreData?
问题描述
有两个实体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
}
}
推荐阅读
- javascript - jquery替换新行
- elixir - 预加载嵌套关联查询
- apache2.4 - 除非指定,否则 apache 不提供 index.html
- javascript - 通过文本框和按钮中的链接更新网站图标
- sql - 如何检查开始和结束日期是否不干扰其他开始和结束日期
- javascript - React , Leaflet , Converting or Exporting map into an image or in byte64 format
- c# - IQueryable 不允许 ThenBy
- javascript - SharePoint - Angular 2+ 中的 GetURLKeyValue
- r - 将图像插入 Google 表格的 R 脚本
- machine-learning - 我可以使用哪些文本分类算法对客户聊天消息进行分类?