iPhone - 保存UIImageView状态
问题描述:
我已经创建了UIImageView的一个子类,我正在处理子对象本身内的对象的触摸。iPhone - 保存UIImageView状态
现在,当用户即将退出应用程序,我想保存图像的状态。由于图像上可能发生了多次转换(我将所有转换保存在数组中),我希望能够将这些对象保存在applicationWillTerminate中。
有什么办法可以保存这些对象吗?还是我必须单独保存一切?如果我这样做,如何保存在图像视图对象上发生的所有转换,直到用户退出?
谢谢。
答
UIImageView
符合NSCoding
。您需要在UIImageView
子类中实现encodeWithCoder:
以允许其序列化。您使用传递的编码器来串行化重要的成员变量,在这种情况下,您的图像将调用超类'encodeWithCoder:
。
你在initWithCoder:
中做了相反的处理,你已经回到了原始状态。
如果您的图像是UIImage
的实例,您将有更多工作要做,因为它不符合NSCoding
。根据您的需求,您可能会将图像数据转换为NSData
对象并进行编码。这里有一个如何可以做到这一点的例子:http://www.nixwire.com/getting-uiimage-to-work-with-nscoding-encodewithcoder/
看一看档案和序列化编程指南可可:http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/Archiving/Archiving.html
非常感谢。我面临另一个问题。 encodeWithCoder在我的UIImageView子类中发出异常。它会抛出错误[UIImage encodeWithCoder:]无效的方法。但我没有在UIImage对象上调用encodeWithCoder,只在UIImageView和NSMutableDictionary上调用。有任何想法吗? – lostInTransit 2009-06-13 07:35:38