Я новичок в 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 {
// error handling
}
} // deleteAllCDRecords
и
private func saveManagedContext(managedContext: NSManagedObjectContext) {
if !managedContext.hasChanges { return }
do {
try managedContext.save()
} catch let error as NSError {
// error handling
}
} // saveManagedContext
Проблема:
После выполнения deleteAllCDRecords
, managedContext.hasChanges
в функции saveManagedContext
не соответствует действительности , поэтому удаление не сохраняется в постоянном хранилище.
Мой вопрос:
Что не так с моим кодом?