我刚接触CoreData,但遇到了一个问题:
我的应用程序执行以下3个连续的核心数据功能:
let managedContext = persistentContainer.viewContext
deleteAllCDRecords(managedContext: managedContext, in: "CDShoppingItem")
saveManagedContext(managedContext: managedContext)
它们被定义(简称)为:
private func deleteAllCDRecords(managedContext: NSManagedObjectContext, in entity: String) {
let deleteFetch = NSFetchRequest<NSFetchRequestResult>(entityName: entity)
let deleteRequest = NSBatchDeleteRequest(fetchRequest: deleteFetch)
do {
try managedContext.execute(deleteRequest)
} catch let error as NSError {
}
}
和
private func saveManagedContext(managedContext: NSManagedObjectContext) {
if !managedContext.hasChanges { return }
do {
try managedContext.save()
} catch let error as NSError {
}
}
问题:
后
deleteAllCDRecords
执行,
managedContext.hasChanges
在功能中
saveManagedContext
不是真的
因此,删除不会保存到持久存储中。
我的问题:
我的代码有什么问题?