删除每个循环中的所有项目?
Posted
技术标签:
【中文标题】删除每个循环中的所有项目?【英文标题】:Delete all items in a for each loop? 【发布时间】:2020-07-06 20:13:25 【问题描述】:我有一个获取请求,以及一个列出项目的 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()
【问题讨论】:
什么所有元素?全部在集合中还是您已获取的所有对象?无论哪种方式,您都应该查看this question 【参考方案1】:循环遍历taskItems
并一一删除taskItem
:
func deleteAllTasks()
for taskItem in taskItems
managedObjectContext.delete(taskItem)
saveTasks()
【讨论】:
【参考方案2】:尝试以下方法:
func deleteAll()
// for each taskItem... delete
taskItems.forEach(managedObjectContext.delete)
saveTasks()
假设saveTasks
保存managedObjectContext
对象。
【讨论】:
以上是关于删除每个循环中的所有项目?的主要内容,如果未能解决你的问题,请参考以下文章
我的 for 循环没有根据条件删除数组中的项目? Python [重复]
如何从 postgresql 10.3 中的这个多重连接查询中删除嵌套循环