代码之家  ›  专栏  ›  技术社区  ›  Steph Thirion

归档互连对象的简单方法

  •  2
  • Steph Thirion  · 技术社区  · 17 年前

    在游戏中,我有一堆对象和对象集合,其中一些包含对其他对象的引用。在维护这些引用的同时,是否有一种简单的方法来存档它们(保存游戏状态)?如果我理解的很好,NSArchiver可以做到这一点,但它在SDK 2上不可用,是在SDK 3上吗?

    (我以前有点问过这个问题( best way to save/load iphone game data )但与此同时,SDK 3已经发布,我想知道这个话题是否有进展。)

    2 回复  |  直到 9 年前
        1
  •  3
  •   Jon Hess    17 年前

    您需要使所有要序列化的类实现NSCoding协议。之后,您需要使用NSKeyedArchiver类对它们进行编码。该类将递归地序列化对象,并处理循环。NSKeyedArchiver在iPhone SDK的所有版本中都可用。要解码对象,将使用NSKeyedUnarchiver。

        2
  •  0
  •   Jeffrey Forbes    17 年前

    在此处签出对象序列化:

    Encoding/Decoding Objects (apple.com)

    基本上,您必须使您的类符合键值编码,以正确保存所有数据;它将它们归档到二进制属性列表中。在编写initWithCoder:和encodeWithCoder:函数之后,它几乎是自动的!