我一直在用核心数据弄湿我的脚。我正在编写纸牌游戏,并且可以存储和检索游戏统计信息。每次移动后,我还会存储游戏的状态,以允许应用程序恢复应用程序退出时正在进行的游戏并促进我的自制撤消系统。
不幸的是,我玩游戏的时间越长,感觉就慢了。我认为这是因为在每一步之后,我将在Sqllite中存储52张牌及其特定状态。我怀疑这会变得越来越慢,因为我将数据塞进DB。
因此,我计划尝试在核心数据中使用内置启动管理。(我不记得这是在我最初的实施中为时已晚的。)我的问题是,如果该应用程序已关闭中间游戏,它是否可以在同一状态下重新启动撤消管理?
ie:想象一个用户在此游戏中迈出了十个动作。他们可以撤消十次。如果他们退出应用程序并完全关闭应用程序,然后重新启动应用程序,我可以将核心数据返回到一个状态。
一点点研究表明,当关闭应用程序时,我可以简单地使用nscoding将NSManagedObjectContext持续到序列化文件,然后在应用程序重新启动时从该文件中恢复其状态。
我在正确的道路上吗?有什么建议吗?
谢谢!
没有毫不持久的人。是的,您可以使用NScoding甚至PLIST来保存状态。
有关此主题的更多信息,您可能会参考http://www.cimgf.com/2011/10/11/core-data-and-the---the-undo-manager/