为了账号安全,请及时绑定邮箱和手机立即绑定

为什么NSUserDefaults无法在iOS中保存NSMutableDictionary?

为什么NSUserDefaults无法在iOS中保存NSMutableDictionary?

UYOU 2019-08-26 09:57:15
为什么NSUserDefaults无法在iOS中保存NSMutableDictionary?我想保存一个NSMutableDictionary对象NSUserDefaults。键类型NSMutableDictionary是NSString,值类型是NSArray,它包含实现的对象列表NSCoding。每份文件,NSString和NSArray两者都符合NSCoding。我收到此错误:[NSUserDefaults setObject:forKey:]:尝试插入类NSCFDictionary的非属性值....
查看完整描述

3 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

如果要在用户默认值中保存对象,则所有对象(递归地,一直向下)必须是属性列表对象。符合NSCoding并不意味着什么 - NSUserDefaults不会自动编码NSData,你必须自己做。如果您的“实现的对象列表NSCoding”表示不是属性列表对象的对象,那么在保存到用户默认值之前,您必须对它们执行某些操作。

FYI财产清单类NSDictionaryNSArrayNSStringNSDateNSData,和NSNumber。您可以将可变子类(如NSMutableDictionary)写入用户首选项,但您读出的对象将始终是不可变的。


查看完整回答
反对 回复 2019-08-26
  • 3 回答
  • 0 关注
  • 660 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号