我有一堆来自CCTMXLayer的CGPoints,想将它们保存到NSUserDefaults中,但似乎找不到优雅的方法。
最初,我希望保存一个NSDictionary,其中包含一个NSMutableSet作为值,该值包含几个NSValues(valueWithCGPoint)。据我所知,NSUserDefaults都不支持NSMutableSet或NSValue。
此时,我考虑将CGPoint的x和y值保存为字符串,并根据需要进行转换。
我有一堆来自CCTMXLayer的CGPoints,想将它们保存到NSUserDefaults中,但似乎找不到优雅的方法。
最初,我希望保存一个NSDictionary,其中包含一个NSMutableSet作为值,该值包含几个NSValues(valueWithCGPoint)。据我所知,NSUserDefaults都不支持NSMutableSet或NSValue。
此时,我考虑将CGPoint的x和y值保存为字符串,并根据需要进行转换。
有一对函数NSStringFromCGPoint
和CGPointFromString
。您可以使用它们生成表示点的字符串数组进行序列化,然后在完成时将其转换回来。
将它们装进NSValue
对象中。一旦它们在里面,你就可以将这些NSValues
写入磁盘(因为它们符合<NSCoding>
),或者将它们放入NSUserDefaults
或其他地方。
NSKeyedArchiver
将NSValues
转换为NSDatas
(或将NSArray
转换为NSData
)。 - Dave DeLong