我以前从未使用过 NSCoding,我对它应该如何实现感到非常困惑。
我当前的 iPad 应用程序有一个 UIImageView(称为“背景”),它是我的主视图控制器的一个属性。“背景”有一个 UIImage 的“图像”属性(显然)和用户添加的各种子视图。添加的子视图是我自己自定义的 UIImageView 子类。
我需要能够保存“背景” UIImageView 的状态,以便可以使用相同的图像和所有子视图在存档时恢复它。
我了解 UIImageView 符合 NSCoding 协议,但我不确定在哪里实现 encodeWithCoder 和 initWithCoder。我是否从我的主视图控制器调用这些?我是否需要为 UIImageView 创建一个类别以允许我覆盖这些方法?
我是否需要编写代码来归档我的“背景”UIImageView 及其子视图的每个属性?我在 SO 的其他地方读到 UIImage 不符合 NSCoding,因此需要子类化或添加类别才能存档 UIImageView。
我认为有一种简单的方法可以将包括其所有属性、子视图等的对象保存到磁盘。似乎需要做很多事情才能让我保存这个“背景”UIImageView 并在以后恢复它。我正在努力想象我需要做的一切。非常感谢任何指针!