ios - 即使在 context.save() 之后,Core Data 也不会持久化
问题描述
我正在将不同的活动保存到 Core Data。当应用程序运行时,我可以轻松检索这些数据。但是在我关闭应用程序之后,即使我使用context.save()
. 任何想法为什么会发生这种情况?
private func getContext() -> NSManagedObjectContext {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
return appDelegate.persistentContainer.viewContext
}
func retrieveTestEntity() -> TestEntity? {
let managedContext = getContext()
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "TestEntity")
do {
let result = try managedContext.fetch(fetchRequest) as! [TestEntity]
if result.count > 0 {
// Assuming there will only ever be one Entity in the app.
return result[0]
} else {
return nil
}
} catch let error as NSError {
print("Retrieving user failed. \(error): \(error.userInfo)")
return nil
}
}
func saveActivity(_ activity: Activity) {
let managedContext = getContext()
guard let testEntity = retrieveTestEntity() else { return }
testEntity.activity.append(activity)
do {
print("Saving session...")
try managedContext.save()
} catch let error as NSError {
print("Failed to save session data! \(error): \(error.userInfo)")
}
}
解决方案
推荐阅读
- android - 有没有办法使用 ARCore Sceneform 平滑 AR 对象的多边形方面?
- javascript - Typescript 在泛型类型声明中看不到导入的变量
- java - 当两个以上的字符串用 + 连接时,将在字符串池中创建多少个对象
- c# - ping 响应失败时更改按钮背景颜色
- dart - 如何在 Angular Dart 中显示 HTML 字符串中的 URL?
- reactjs - 如何在反应中使用带参数的函数作为道具
- java - 应用程序在到达 RecyclerView Android 的末尾时停止
- android - 如何检查我的 RV 物品何时被刷卡?
- javascript - 我的石头剪刀布游戏不工作,变量 userChoice 的值保持不变
- plot - 将列值添加到八度条形图