核心数据自动保存与手动保存

时间:2014-11-18 18:08:16

标签: ios core-data

在我的项目中使用核心数据时,我只在添加新数据时手动保存上下文。对数据的任何其他编辑,例如标题更改或删除,我一直依赖于自动保存。但是,我注意到如果我进行编辑并且我的应用程序崩溃,重新加载我在崩溃之前所做的更改不会出现。因此我决定在每次编辑后手动保存上下文。这是不好的做法吗?当我第一次开始使用核心数据时,我觉得你想要自动保存而不是手动保存。在关于核心数据的iOS Standford讲座中,教授建议依靠自动保存并在调试时实现手动保存。

我按照以下方式进行手动保存:

-(void) updateSaveContext
{
    [self.document saveToURL:self.document.fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:^(BOOL success) {
        if(success)
        {
            NSLog(@" NEW FILE SAVED");
        }
        else
        {
            NSLog(@"FAIL TO SAVE");
        }
    }];
}

1 个答案:

答案 0 :(得分:-1)

好的,你的NSManagedObjectContext是一个暂存器。您所做的所有更改都在该暂存器上完成。当您订购UIManagedDocument进行保存时。它将验证您在对象模型中设置的所有规则。如果其中一个失败,它将无法保存,在日志记录中,您将发现来自Core Data框架的Cocoa Error。 通常它是缺少必需的实体属性,或者缺少必需的关系船无效。

你得到了什么Cocoa错误?

相关问题