我目前正在为 iPad 开发一个简单的 CoreData 应用程序,我不确定何时必须明确保存。我知道有自动保存;但是,我觉得我需要显式保存以确保我的程序不会崩溃。以下是该计划的简要概述:
~ 这是一个表单程序,向用户显示一组文本字段和分段控件以供填写。 (想想一个人填写调查问卷,或回答有关他们的姓名、年龄等的问题)。
~ 可以填写任意数量的这些字段。它们都不是强制性的。
~ 用户可以随时保存和加载他们的表单,他们可以同时保存多个不同的表单。他们可以删除保存的文档
~ 我目前正在使用核心数据存储此数据,其中一个实体对象代表一种形式。此实体对象包含用户已完成的所有字段的列表以及他们对每个字段的响应。
~我还有一个NSManagedObject这个实体对象的子类。因此,每次填写字段时,我都会执行诸如 currentForm.name = textfield.text
之类的操作。
好的,所以我的问题是,我什么时候必须明确保存?如果我编写诸如 currentForm.name = textfield.text
之类的代码,核心数据是立即执行保存还是我必须明确告诉它这样做(假设我不想等待自动保存)?还有其他时候我可能需要保存吗?删除存储的文档后是否必须保存?
谢谢!
最佳答案
因此,没有“自动保存”,只是碰巧 Apple 设置的 Core Data 模板包含一个应用程序关闭时的保存例程,这更像是一个故障保险,以确保您的用户不会丢失任何数据。
每当您的用户明确保存某些内容或您认为有必要时,您应该调用保存。
我会在用户填写完表格后调用保存。
currentNotification.name = textfield.text does core data perform an immediate save or do I have to explicitly tell it to do so (assuming that I don't want to wait for the auto-save)?
不,更改将在您的 NSManagedObjectContext 中进行,但是直到在该上下文上显式调用保存之前,数据不会持久保存到您的持久性存储中。
关于iphone - 什么时候在 iOS 中使用 CoreData 显式保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11020330/