核心数据保存更改撤消

Posted

技术标签:

【中文标题】核心数据保存更改撤消【英文标题】:Core Data Save Changes Undo 【发布时间】:2011-11-07 22:47:05 【问题描述】:

我在我的应用程序中使用CoreData,它获取坐标并将它们(连同其他数据)保存到持久存储中。

应用程序流程是这样的:用户按下一个按钮,每次用户移动时都会添加坐标,并将它们放入managedObjectContext。用户按下另一个按钮,应用程序停止将坐标放入managedObjectContext,并询问用户是否要保存数据。如果用户想保存他们的数据,我会打电话给[managedObjectContext save:&error]; 并检查错误。如果用户不想保存,坐标就放在managedObjectContext 中,直到应用程序完全关闭并重新打开。

如何删除用户不想保存的点?

【问题讨论】:

【参考方案1】:

[managedObjectContext rollback] 将丢弃自上次保存后对上下文所做的任何更改。如果您想要更精细的控制,请在上下文中添加 NSUndoManager 并分解文档! :)

【讨论】:

这成功了。谢谢!我不知道从文档中使用哪个。 6 分钟,直到我可以接受... 您好 XJones,一个小问题...有没有办法在保存托管对象上下文后恢复更改? 没有办法,我不知道。

以上是关于核心数据保存更改撤消的主要内容,如果未能解决你的问题,请参考以下文章

核心数据:托管对象与上下文一起保存后如何撤消操作

在运行循环的旋转中使用核心数据撤消组

核心数据:禁用特定属性的撤消。推荐的方法不起作用

撤消管理器未与 NSPersistentDocument 保持同步

多个窗口的核心数据和单独的撤消管理器?

将更改 NSManagedObject 保存到核心数据失败