我想在NSUserDefaults里存储一个Swift套装。
考虑到我可以使用以下方法从NSMutableSet读取UserDefaults值:
UserDefaults.standard.mutableSetValue(forKey:)..。看来我也应该能写一个NSMutableSet了。
我尝试过将我的集转换为NSMutableSet,但是当我试图将它保存在UserDefaults中时,它说:
用户默认尝试将非属性列表对象{( foo )}设置为密钥KEYNAME的NSUserDefaults/ an预测值
发布于 2018-02-27 21:43:26
mutableSetValue(forKey:)有一个不幸的名字。
大多数UserDefaults方法看起来非常相似:
然而,mutableArrayValue(forKey:)实际上来自于NSKeyValueCoding协议!
该议定书有一些方法,例如:
在处理UserDefaults时,您可能只想使用来自UserDefaults列表的方法,而不是NSKeyValueCoding列表。
简而言之,您需要确保没有查看NSKeyValueCoding方法,避免尝试读取/写入集合,而是编写属性列表对象:
属性列表只包含某些类型的数据:字典、数组、字符串、数字(整数和浮点数)、日期、二进制数据和布尔值。
https://stackoverflow.com/questions/49018416
复制相似问题