【问题标题】:iPhone - save UIImageView stateiPhone - 保存 UIImageView 状态
【发布时间】:2009-06-12 06:54:14
【问题描述】:

我创建了 UIImageView 的一个子类,并在子类中处理其对象的触摸。

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

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

谢谢。

【问题讨论】:

    标签: iphone uiimageview


    【解决方案1】:

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

    【讨论】:

    • 非常感谢。我面临另一个问题。 encodeWithCoder 在我的 UIImageView 子类中给出了一个例外。它抛出错误 [UIImage encodeWithCoder:] 无效方法。但我不是在 UIImage 对象上调用 encodeWithCoder,只是在 UIImageView 和 NSMutableDictionary 上调用。有什么想法吗?
    • 原来你提到的另一个链接(nixwire)提到了我面临的问题:)再次感谢
    • 我有同样的问题,有没有可用的教程/示例应用程序,我可以找到一些参考?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多