使用NSKeyedUnarchiver解压缩NSDictionary是否会分配它包含的所有对象?

时间:2013-09-16 19:11:44

标签: ios objective-c nsdictionary nsdata nskeyedarchiver

在我的应用程序中,对于保存在设备上的每个游戏,我将游戏对象存储在NSDictionary中,以及其他一些使用NSKeyedArchiver存档的元数据。

我试图避免在每次我想要在游戏数据达到峰值时分配/初始化游戏对象,因为游戏对象会变得相当大。因此,我使用元数据来获取有关它的基本信息,以便构建菜单等。

我有2个问题。 NSDictionary中的每个对象在取消归档时是否已分配?如果是这样,将游戏对象归档为NSData,然后在NSDictionary内再次存档更高效?基本上是存档中的存档。

1 个答案:

答案 0 :(得分:2)

是的,整个词典同时取消归档。您可能想要创建一些包装器和/或将每个游戏状态保存为2个文件(一个用于元数据,一个用于完整状态),可能每个游戏都在自己的文件夹中。

将存档数据放入字典然后存档字典并不能解决您的初始问题,并且需要更长时间。解决方案是将两部分数据分开,以便可以单独取消存档。

相关问题