如何归档NSValues数组?我应该做什么转换才能做到这一点?它不会按原样存档。
代码:
[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver
archivedDataWithRootObject:[[NSArray alloc] initWithArray:drawingsArray]]
forKey:@"NSValuesArray"];
错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSKeyedArchiver encodeValueOfObjCType:at:]: this archiver cannot encode structs'
阵列数据:
drawingsArray (
(
NSPoint: {439, 280},
NSPoint: {439, 280},
NSPoint: {439, 287},
NSPoint: {438.62, 290.104},
NSPoint: {439, 293}
)
)
答案 0 :(得分:1)
您无需使用NSKeyedArchiver
。相反,只需说出[[NSUserDefaults standardUserDefaults] setObject:valueArray forKey:@"valueArray"]
。归档将自动完成。看看是否有效。
编辑:我认为您的具体问题是使用archivedDataWithRootObject:
。您不需要使用它,因为NSArray
符合NSCoder
- 子对象也将自动存档。