我正在开发一款益智游戏,游戏引擎拥有复杂的对象层次结构,从游戏角色到矢量到过渡动画。根据游戏状态,它们可能会从10增加到1000(在极端情况下)。我一直在推迟这一刻,直到我必须努力保存和装载所有这些混乱,因为我没有这方面的经验,但现在我担心的那一刻即将到来。
为此使用NSKeyedArchiver是个好主意吗?它的概念似乎很强大。这样我可以重建对象状态,但这包括保存对象之间的指针吗?它在性能方面表现如何?系统是否有时间在应用程序终止时将所有这些对象保存在磁盘上?
答案 0 :(得分:1)
NSKeyedArchiver功能非常强大,但它不会让你保留对象之间的联系(除非你自己在归档后添加它们)。如果你可以/需要以原子方式存储你的整个数据集,那么NSKeyedArchiver可能就是你要走的路,但如果有任何比亲子关系更复杂的事情,那么你将会有一些“重新补水”。
我们有一个复杂的数据对象层次结构,我们将它们存储到SQLite数据库中,并在我们提取它们时重新连接它们。
答案 1 :(得分:0)
我去了NSKeyedArchiver,它确实维护对象之间的引用。见这里:Easy way to archive interlinked objects