我想从Core Data中删除每个以前保存的对象。我正在使用内存中的存储类型,因此不能选择NSBatchDeleteRequest

我尝试在上下文中调用reset(),但是它似乎没有任何作用。

我有以下代码:

viewContext.reset()
let fetchRequest: NSFetchRequest<CompactJobManaged> = CompactJobManaged.fetchRequest()
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "highlightedAt", ascending: false),
                                NSSortDescriptor(key: "uploadedAt", ascending: true)]
print(try! viewContext.fetch(fetchRequest).count)


我希望底部的print语句在调用reset()之后打印出0,但是,尽管以前调用reset(),它也会打印出以前保存的对象数。

我可能会为此目的而误用reset()函数,但是我不知道有任何其他方法可以从内存中存储中批量删除所有对象。

任何帮助,将不胜感激。

最佳答案

您是否尝试过这样的事情:

do {
    try persistentStoreCoordinator.destroyPersistentStoreAtURL(persistentStoreURL, withType: NSSQLiteStoreType, options: nil)

} catch {
    // Error Handling
}

关于swift - 清除内存中的存储类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54289451/

10-13 03:43