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