0

以下情况:

我有一个NSObject子类对象的实例。它的一个属性是 a NSImage。实例化对象后,我将其转换NSKeyedArchiver为数据,通过网络发送,将其解压缩NSKeyedUnarchiver并在 a NSImageView(setAnimates: YES) 中显示图像。直到这里没有问题。图像可以显示在另一台机器上。现在的问题是:
如果我发送动画 gif,它不会动画。我不知道为什么...任何想法为什么动画远离?谢谢!

更新

如果我在存档之前打开动画图像,则会对其进行NSImageView动画处理。问题可能是存档...

更新 2

我测试了整个工作流程,没有通过网络发送数据,只是再次归档和取消归档。我怀疑这是 NSKeyed(Un)Archiver 的问题。
动画会丢失。但是如何防止这种情况发生呢?

4

2 回答 2

2

我会简单地存档原始图像数据,而不是图像实例。

于 2010-02-11T07:02:32.793 回答
0

默认情况下,NSImage不保留原始源图像数据。可能发生的是NSImage仅归档一帧的静态位图并丢弃原始内容。

如果您调用[yourNSImageObject setDataRetained:YES]NSImage则应保留原始数据(在本例中为动画 GIF)。我建议您在首次创建图像时尝试执行此操作,然后查看存档/取消存档时会发生什么。

于 2010-02-11T02:15:10.193 回答