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