如何存档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}
))
发布于 2010-04-24 22:04:39
您不需要使用NSKeyedArchiver。相反,只需说[[NSUserDefaults standardUserDefaults] setObject:valueArray forKey:@"valueArray"]。归档工作将自动完成。看看能不能。
编辑:我认为您的具体问题是使用archivedDataWithRootObject:。您不需要使用它,因为NSArray符合NSCoder--子对象也将自动归档。
https://stackoverflow.com/questions/2705954
复制相似问题