Я использую базовые данные в качестве локальной БД для сохранения локальных данных в моем приложении для iOS. Когда приложение завершается и перезапускается снова, локальные данные очищаются от основных данных. Я звоню saveContext () из applicationDidEnterBackground и applicationWillTerminate методов. Во-первых, я изменил версию основных данных. Это изменение повлияет на чистые данные после перезапуска приложения.
Метод saveContext -:
func saveContext () -> Bool {
let context = persistentContainer.viewContext
var saveFlag = false
if context.hasChanges {
do {
try context.save()
saveFlag = true
} catch {
saveFlag = false
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
}
return saveFlag
}
Примечание: Сверху метод saveContext (), Not не входит в условие context.hasChanges. Таким образом, не печатать сообщение об ошибке. Он выходит за пределы условия и возвращает saveFlag как false.