当明确地与CoreData保存在iOS中?(When to explicitly save with

2019-09-18 01:51发布

我目前工作的一个简单的CoreData的应用程序为iPad,我不完全相信当我必须明确地保存。 我知道,有自动保存; 不过,我觉得我需要,以确保我的程序不会崩溃明确地保存。 下面是该程序的简要概述:

〜就这么呈现一组文本字段和分段控制的填写用户表单程序。 (想想一个人填写了调查,或回答有关他们的姓名,年龄问题,...等)。

〜这些领域的任何数字都填写。 他们都不是强制性的。

〜用户可以保存并随时加载它们的形式和他们可以保存一次多个不同的形式。 他们可以删除已储存的文件

〜我使用,其中一个实体对象表示形式的核心数据当前存储该数据。 这个实体对象包含所有用户已完成了场及其对每个字段的响应的列表。

〜我也有这个实体对象的NSManagedObject子类。 因此,每一个字段填写时间我做一些事情,如currentForm.name = textfield.text

好了,我的问题是,当我有明确救? 如果我写的代码,如currentForm.name = textfield.text做核心数据进行即时保存或做我必须明确地告诉它这样做(假设我不想等待自动保存)? 在那里,当我可能要保存任何其他时间? 我一定要救我删除存储的文件后?

谢谢!

Answer 1:

这里是你如何保存

NSError *error;

    if (![[AppDelegate managedObjectContext] save:&error]) 
{
        NSLog(@"there was an error in Save:%@",error);
    }

我会拯救“早期和经常”或至少在通知的didEnterBackground



Answer 2:

所以,没有“自动保存”,它只是恰巧,核心数据模板苹果已经设置包括当应用程序被关闭,其更多的是一种保存程序的故障安全,以确保您的用户不会丢失任何数据。

你应该调用保存时,您的用户明确保存的东西,或者当你认为有必要。

我会叫保存在用户已填完表格。

currentNotification.name =的TextField.text做核心数据进行即时保存或做我必须明确地告诉它这样做(假设我不想等待自动保存)?

不,这些变化将在你的NSManagedObjectContext进行,但直到保存明确呼吁这方面的数据不会被保存到您的持久性存储。



Answer 3:

我没有听说核心数据自动保存的? 你应该叫节省您的NSManagedObjectContext只要你想,以保存数据。 这里是另一个类似的问题您: 自动保存可可和核心数据



文章来源: When to explicitly save with CoreData in iOS?