从 Swift 中删除 CoreData 中的实体



我是 Swift 的新手,我想从 Swift 中删除我在 CoreData 中的学生。我已经编码了这个:

let fetchRequest: FetchRequest<Student> = FetchRequest(entity: Student.entity(), sortDescriptors: [])
var students: FetchedResults<Student> { fetchRequest.wrappedValue }
for student in students {
do {
try self.managedObjectContext.delete(student)
} catch {
print("error")
}
}

但它在运行时崩溃,说我在初始化 Students 变量的行上有一个EXC_BAD_INSTRUCTION。我该怎么做才能使这个程序正确?

感谢您的帮助, 弗朗索瓦

要在NSManagedObjectFetchedResults执行从CoreData中删除,代码如下:

@Environment(.managedObjectContext) var managedObjectContext
@FetchRequest(
entity: Student.entity(),
sortDescriptors: []
) var students: FetchedResults<Student>
func deleteAllStudents() {
for student in students {
managedObjectContext.delete(student)
}
do {
try managedObjectContext.save()
} catch {
// handle the Core Data error
}
}

如果您只想删除几个条目,请使用以下命令:

func removeStudents(at offsets: IndexSet) { // Could use [Student] instead too.
for index in offsets {
let student = students[index]
managedObjectContext.delete(student)
}
// save context...
}

最新更新