我创建了 UIImageView 的一个子类,并且我正在处理子类本身内部的对象的触摸。
现在,当用户即将退出应用程序时,我想保存图像的状态。由于图像上可能发生了多个变换(我将所有变换保存在一个数组中),我希望能够将这些对象保存在 applicationWillTerminate 中。
有什么办法可以保存这些对象吗?还是我必须单独保存所有内容?如果我这样做,我如何保存图像视图对象上发生的所有转换,直到用户退出?
谢谢。
我创建了 UIImageView 的一个子类,并且我正在处理子类本身内部的对象的触摸。
现在,当用户即将退出应用程序时,我想保存图像的状态。由于图像上可能发生了多个变换(我将所有变换保存在一个数组中),我希望能够将这些对象保存在 applicationWillTerminate 中。
有什么办法可以保存这些对象吗?还是我必须单独保存所有内容?如果我这样做,我如何保存图像视图对象上发生的所有转换,直到用户退出?
谢谢。
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