2011-05-24 46 views
1

我想使用NSPropertyListSerialization编码NSEvent,但NSPropertyListSerialization只接受NSData,NSString,NSArray,NSDictionary,NSDate和NSNumber对象。如何将NSEvent添加到属性列表?

是否有推荐的方法来将NSEvent转换为支持NSPropertyListSerialization的NSDictionary(并从这样的NSDictionary中恢复NSEvent)?

+1

为什么地球上你想要序列化一个'NSEvent'? – 2011-05-24 20:47:39

+0

我想记录与应用程序的交互,并能够稍后重播这些交互来驱动应用程序。 – smokris 2011-05-24 21:05:08

回答

2

在这种情况下,您需要自己处理保存和恢复对象。或者说,您感兴趣的对象的片断,可以将每个值放入NSDictionary中,也可以单独存储它们,并在解码类时使用这些值创建新对象。

这种情况有点奇怪,因为你通常不创建或存储NSEvent对象。如果您正在存储最后一个触摸坐标,请考虑使用CGPoint。您不仅可以少量减少内存占用量,还可以使用NSValue对该点进行序列化。

+0

谢谢。然而,我想存储各种NSEvent类型,所以坐标本身并不代表构建新NSEvent的所有必要数据。 – smokris 2011-05-24 21:11:25

+0

是的,你将不得不推出自己的实施,保存你感兴趣的东西。 – 2011-05-25 05:10:42