2011-05-24 49 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