我应该啥时候保存上下文?

Posted

技术标签:

【中文标题】我应该啥时候保存上下文?【英文标题】:When should I save the context?我应该什么时候保存上下文? 【发布时间】:2013-06-01 10:56:13 【问题描述】:

我是 StackMob 的新手,所以请原谅这个基本问题。 那里缺少教程。

当我创建一个新对象并立即保存 NSManagedObjectContext 时,该对象已成功保存。

但通常当我使用核心数据时,我只将上下文保存在 applicationDidEnterBackground 和 applicationWillTerminate 中。

当我把我的保存代码放在那里时,它就是不保存!

我试过以下代码:

    NSManagedObjectContext *context = [self.coreDataStore contextForCurrentThread];

        [context saveOnSuccess:^

            NSLog(@"Success!");

        

        onFailure:^(NSError *error) 

          NSLog(@"Error: %@",error);

];

当我立即保存时它工作得很好,但是当这种代码和平在上面提到的方法中时,它不会打印任何东西!

不是“成功”也不是“错误”,当然在网络上我看不到新对象。

那么,我应该什么时候保存在我的应用中所做的更改?显然,我无法随时保存它们。

谢谢。

【问题讨论】:

您是否需要仅在那些应用程序委托方法中保存数据?如果在用户添加/更新/删除某些内容后,应用在执行过程中由于某种随机原因崩溃怎么办? 【参考方案1】:

解决方案: 不要使用 saveOnSuccess:onFailure:,而是使用 saveAndWait:

【讨论】:

以上是关于我应该啥时候保存上下文?的主要内容,如果未能解决你的问题,请参考以下文章

swift中快速框架中的描述和上下文有啥区别?

Magical Record IOS 目标 C. 我们应该创建啥上下文?

托管对象上下文保存和 refreshObject:mergeChanges 有啥区别:

直到啥时候才能设置 CUDA 设备(主上下文)调度策略?

我应该多久保存到 Core Data?

如何在保存到核心数据之前验证上下文中的值