在我的应用程序中,对于保存在设备上的每个游戏,我将游戏对象存储在NSDictionary中,以及其他一些使用NSKeyedArchiver存档的元数据。
我试图避免在每次我想要在游戏数据达到峰值时分配/初始化游戏对象,因为游戏对象会变得相当大。因此,我使用元数据来获取有关它的基本信息,以便构建菜单等。
我有2个问题。 NSDictionary中的每个对象在取消归档时是否已分配?如果是这样,将游戏对象归档为NSData,然后在NSDictionary内再次存档更高效?基本上是存档中的存档。
答案 0 :(得分:2)
是的,整个词典同时取消归档。您可能想要创建一些包装器和/或将每个游戏状态保存为2个文件(一个用于元数据,一个用于完整状态),可能每个游戏都在自己的文件夹中。
将存档数据放入字典然后存档字典并不能解决您的初始问题,并且需要更长时间。解决方案是将两部分数据分开,以便可以单独取消存档。