【问题标题】:Unable to retrieve dictionary data from Userdefaults in Swift 3无法从 Swift 3 中的 Userdefaults 检索字典数据
【发布时间】:2017-03-27 10:23:49
【问题描述】:

你们能否对使用 UserDefaults 的字典有所了解?

我想要得到的是使用 UserDefaults 将某个字典从视图控制器传递到另一个。

var dict = [String : AnyObject?]()
dict = ["Name": "Henri", "Group": "A", "Category": "4"]
UserDefaults.standard.set.(dict, forKey: "MyDict")

然后我尝试检索数据

let retrieveDict = UserDefaults.standard.dictionary(forKey:"MyDict")

我在控制台中得到了一个很好的 nil 答案。当我尝试使用 int 或 float 类型时,这很好......制作这本字典有什么我缺少的吗?

【问题讨论】:

  • 应该是UserDefaults.standard.set(dict, forKey: "MyDict")
  • UserDefaults 是在视图控制器之间传递数据的糟糕方式。

标签: ios dictionary swift3 xcode8 userdefaults


【解决方案1】:

首先,您的代码不会编译。

其次,[String, AnyObject?] 类型的字典没有意义,因为您将无法在 UserDefaults 中设置 nil。您应该为此目的使用空字符串。

工作代码可能如下所示:

    var dict = [String : Any]() // or maybe [String : String] if you sure about value type
    dict = ["Name": "Henri", "Group": "A", "Category": "4"]
    UserDefaults.standard.set(dict, forKey: "MyDict")
    let retrieveDict = UserDefaults.standard.dictionary(forKey:"MyDict")

希望对你有帮助:)

【讨论】:

    猜你喜欢
    • 2018-08-27
    • 2018-07-16
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 2016-08-19
    • 2018-09-04
    相关资源
    最近更新 更多