ios - 删除每个循环中的所有项目?
问题描述
我有一个获取请求,以及一个列出项目的 foreach 循环。如何编写一个函数来删除该集合中的所有项目?
@FetchRequest(
entity: TaskItem.entity(),
sortDescriptors: [NSSortDescriptor(keyPath: \TaskItem.completedDate, ascending: false)],
predicate: NSPredicate(format: "isComplete == %@", NSNumber(value: true))
) var taskItems: FetchedResults<TaskItem>
ForEach(taskItems, id: \.self) { item in
Text("\(item.title)")
}
我有这个功能来删除单个项目。可以调整此代码并用于删除所有项目吗?
func deleteTask(indexSet: IndexSet) {
let source = indexSet.first!
let taskItem = taskItems[source]
managedObjectContext.delete(taskItem)
saveTasks()
}
解决方案
尝试以下操作:
func deleteAll() {
// for each taskItem... delete
taskItems.forEach(managedObjectContext.delete)
saveTasks()
}
假设saveTasks
保存managedObjectContext
对象。
推荐阅读
- java - 防止用户提供的链接中包含 XSS 攻击的正确方法是什么?
- r - R检查值是否存在于组中
- linux - 100 轮循环 bash 脚本的分段错误(核心转储)
- sql - 查找 SQL 中的差异(棘手的情况)
- javascript - 未捕获的类型错误:在非对象上调用 CreateListFromArrayLike
- c++ - 在c ++上读取希腊字符形成文件
- android - 如何存储 Firebase 服务器时间戳加上 30 秒?
- python - 调整画布/框架大小时如何防止窗口闪烁?
- ios - 未检测到 iOS 13、Swift 5、Core NFC MiFare Classic 1K
- javascript - 打开模态窗口会从主页向下推其余元素