Core Data撤消管理是否可以跨应用程序重启?

时间:2012-11-12 18:47:44

标签: objective-c ios core-data nscoding nsundomanager

我一直在使用Core Data。我正在写一个纸牌游戏,我能够存储和检索游戏统计数据。我还在每次移动后存储游戏的状态,以允许应用程序恢复应用程序退出时正在进行的游戏,并且还促进我的家庭酿造撤销系统。

不幸的是,我玩游戏的时间越长,感觉越慢。我想这是因为每次移动后我都会在SqlLite中存储52张卡片及其特定状态。我怀疑这会越慢,我将更多的数据塞入数据库。

因此,我计划尝试在Core Data中使用内置的撤消管理。 (我不记得这是在那里,直到我的初始实施为时已太晚。)我的问题是,如果应用程序在游戏中关闭,是否可以在同一状态下撤消管理重新启动?

IE:想象一下,用户在这个游戏中进行了十次移动。他们可以撤消十次。如果他们退出应用程序并完全关闭它然后重新启动应用程序,我是否可以将Core Data返回到用户仍然可以执行十个撤消步骤的状态?

一些研究表明,当应用程序关闭时,我可以简单地使用NSCoding将NSManagedObjectContext持久保存到序列化文件,然后在重新启动应用程序时从该文件恢复它的状态。

我是在正确的道路上吗?有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

没有UndoManager不持久。 是的,您可以使用NSCoding甚至Plist来保存状态。

有关此主题的更多信息,请参阅 http://www.cimgf.com/2011/10/11/core-data-and-the-undo-manager/