在游戏中,我有一堆对象和对象集合,其中一些包含对其他对象的引用。有没有一种直接的方式来存档它们 - 保存游戏状态 - 同时保留这些引用?如果我理解得很好,NSArchiver可以做到这一点,但SDK 2上没有它,它是否在SDK 3上?
(之前我有点问过这个问题(best way to save/load iphone game data),但同时发布了SDK 3,我想知道这个话题是否有所进展。)
答案 0 :(得分:3)
您需要使所有要序列化的类实现NSCoding协议。之后,您需要使用NSKeyedArchiver类对它们进行编码。该类将递归序列化您的对象,并将处理周期。 NSKeyedArchiver适用于iPhone SDK的所有版本。要解码对象,您将使用NSKeyedUnarchiver。
答案 1 :(得分:0)
在此处查看对象序列化:
Encoding/Decoding Objects (apple.com)
基本上,您必须使您的类符合键值编码,才能正确保存所有数据;它将它们归档到二进制属性列表中。在编写initWithCoder:和encodeWithCoder:函数之后,它几乎是自动的!