iphone - 什么时候在 iOS 中使用 CoreData 显式保存?

标签 iphone objective-c ios xcode core-data

我目前正在为 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/

相关文章:

由于内存峰值导致截屏时 ios 应用程序崩溃

iPhone 应用程序因 Mprotect 失败错误而崩溃 (MonoTouch)

iphone - 以编程方式计算包含 "<br>"或 "\n"的文本的 UITableViewCell 高度

ios - 无法为 UIMainStoryboardFile 'Main' 实例化默认 View Controller - 也许未设置指定的入口点?

objective-c - 通知所有已加载的 ViewController 某个事件

ios - 如何在一个 View Controller 中定义 Action 并在任何地方调用它们

javascript - HTML 表单 - 使用 JavaScript 检测用户何时点击向下箭头下一个输入按钮?

ios - 我不再使用的库在启动时使应用程序崩溃。如何彻底去除? Xcode/swift

iphone - 使用ios sdk将视频上传到youtube的方法

iphone - 向我自己的类(class)添加类别