【问题标题】:Store NSMutableSet to NSUserDefaults将 NSMutableSet 存储到 NSUserDefaults
【发布时间】:2018-02-27 21:43:26
【问题描述】:

我想在 NSUserDefaults 中存储一个 Swift Set。

鉴于我可以使用以下方法从 UserDefaults 读取 NSMutableSet 值:

UserDefaults.standard.mutableSetValue(forKey:)

...看来我也应该可以写一个 NSMutableSet 了。

我尝试了converting my Set to NSMutableSet,但是当我尝试将其保存在 UserDefaults 中时,它显示:

[用户默认值] 尝试设置非属性列表对象 {( 富 )} 作为键 KEYNAME 的 NSUserDefaults/CFPreferences 值

【问题讨论】:

    标签: swift set nsuserdefaults nsmutableset


    【解决方案1】:

    mutableSetValue(forKey:) 有一个不幸的名字。

    大部分UserDefaults methods 看起来非常相似:

    但是,mutableArrayValue(forKey:) 实际上来自NSKeyValueCoding 协议!

    该协议有如下方法:

    在处理 UserDefaults 时,您可能只想使用 UserDefaults list 而不是 NSKeyValueCoding 列表中的方法。

    简而言之,您需要确保您没有查看 NSKeyValueCoding 方法,避免尝试读/写 Set,而是写一个 property-list object:

    属性列表仅包含某些类型的数据:字典、数组、字符串、数字(整数和浮点数)、日期、二进制数据和布尔值。

    【讨论】:

      猜你喜欢
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      相关资源
      最近更新 更多