NSUserDefaults只能保存诸如NSArray、NSDictionary、NSData、NSNumber等基本数据类型,如果我们强制保存自定义的类,就会出现这个错误:Attempt to set a non-property-list object as an NSUserDefaults value for ,解释起来:【试图将一个非属性列表对象设置为 NSUserDefaults】
解决办法:若是单个的值,例如此处我在工作中遇到的,将其转为NSString进行存储,但是个人觉得只是权宜之计,最好进行归档,将其转化成可以存储的内容再存储 也就是说,我们保存自定义对象时,是使用NSKeyedArchiver 把数据归档为NSData对象,然后把NSData存储到UserDefault中
Attempt to set a non-property-list object 报错问题
最新推荐文章于 2022-04-14 22:23:47 发布
本文介绍了在使用UserDefaults存储自定义对象时可能遇到的问题及解决方法。当尝试存储非基础数据类型的对象时,会触发错误。文章建议通过归档将自定义对象转化为可存储的数据形式。
3305

被折叠的 条评论
为什么被折叠?



