将 NSMutableSet 存储到 NSUserDefaults
Store NSMutableSet to NSUserDefaults
我想在 NSUserDefaults 中存储一个 Swift 集。
鉴于我可以使用以下方法从 UserDefaults 读取 NSMutableSet 值:
UserDefaults.standard.mutableSetValue(forKey:)
...看来我也应该可以写一个NSMutableSet了。
我尝试了 ,但是当我尝试将其保存在 UserDefaults 中时,它显示:
[User Defaults] Attempt to set a non-property-list object {(
foo
)} as an NSUserDefaults/CFPreferences value for key KEYNAME
mutableSetValue(forKey:)
有个不幸的名字。
大部分UserDefaults methods看起来非常相似:
但是,mutableArrayValue(forKey:)
is actually coming from the NSKeyValueCoding协议!
这个协议有如下方法:
处理 UserDefaults 时,您可能只想使用 UserDefaults list instead of the NSKeyValueCoding 列表中的方法。
简而言之,您需要确保您没有查看 NSKeyValueCoding 方法,避免尝试 read/write 一个 Set,而是写一个 property-list object:
Property lists consist only of certain types of data: dictionaries, arrays, strings, numbers (integer and float), dates, binary data, and Boolean values.
我想在 NSUserDefaults 中存储一个 Swift 集。
鉴于我可以使用以下方法从 UserDefaults 读取 NSMutableSet 值:
UserDefaults.standard.mutableSetValue(forKey:)
...看来我也应该可以写一个NSMutableSet了。
我尝试了
[User Defaults] Attempt to set a non-property-list object {( foo )} as an NSUserDefaults/CFPreferences value for key KEYNAME
mutableSetValue(forKey:)
有个不幸的名字。
大部分UserDefaults methods看起来非常相似:
但是,mutableArrayValue(forKey:)
is actually coming from the NSKeyValueCoding协议!
这个协议有如下方法:
处理 UserDefaults 时,您可能只想使用 UserDefaults list instead of the NSKeyValueCoding 列表中的方法。
简而言之,您需要确保您没有查看 NSKeyValueCoding 方法,避免尝试 read/write 一个 Set,而是写一个 property-list object:
Property lists consist only of certain types of data: dictionaries, arrays, strings, numbers (integer and float), dates, binary data, and Boolean values.