2

我创建了 UIImageView 的一个子类,并且我正在处理子类本身内部的对象的触摸。

现在,当用户即将退出应用程序时,我想保存图像的状态。由于图像上可能发生了多个变换(我将所有变换保存在一个数组中),我希望能够将这些对象保存在 applicationWillTerminate 中。

有什么办法可以保存这些对象吗?还是我必须单独保存所有内容?如果我这样做,我如何保存图像视图对象上发生的所有转换,直到用户退出?

谢谢。

4

1 回答 1

1

UIImageView符合NSCoding. 您将需要encodeWithCoder:在您的UIImageView子类中实现以允许它被序列化。您使用传递的编码器序列化重要的成员变量,在这种情况下,您的图像然后调用超类' encodeWithCoder:

initWithCoder:在您恢复原始状态的情况下,您执行与此相反的操作。

如果您的图像是实例,UIImage您将需要做更多的工作,因为它不符合NSCoding. 您可能能够摆脱将图像数据转换为NSData对象并根据您的要求对其进行编码的情况。这是一个如何做到这一点的例子:http: //www.nixwire.com/getting-uiimage-to-work-with-nscoding-encodewithcoder/

查看 Cocoa 的存档和序列化编程指南:http: //developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/Archiving/Archiving.html

于 2009-06-12T07:03:26.223 回答