首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSKeyedArchiver和NSValue -如何存档?

NSKeyedArchiver和NSValue -如何存档?
EN

Stack Overflow用户
提问于 2010-04-24 20:09:25
回答 1查看 1.3K关注 0票数 1

如何存档NSValues数组?我该做些什么改变呢?它不会按原样存档。

代码:

代码语言:javascript
复制
[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver 
archivedDataWithRootObject:[[NSArray alloc] initWithArray:drawingsArray]] 
forKey:@"NSValuesArray"];

错误:

代码语言:javascript
复制
 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSKeyedArchiver encodeValueOfObjCType:at:]: this archiver cannot encode structs'

数组数据:

代码语言:javascript
复制
drawingsArray (
    (
    NSPoint: {439, 280},
    NSPoint: {439, 280},
    NSPoint: {439, 287},
    NSPoint: {438.62, 290.104},
    NSPoint: {439, 293}
)

)

EN

回答 1

Stack Overflow用户

发布于 2010-04-24 22:04:39

您不需要使用NSKeyedArchiver。相反,只需说[[NSUserDefaults standardUserDefaults] setObject:valueArray forKey:@"valueArray"]。归档工作将自动完成。看看能不能。

编辑:我认为您的具体问题是使用archivedDataWithRootObject:。您不需要使用它,因为NSArray符合NSCoder--子对象也将自动归档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2705954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档