无法从Swift 3中的Userdefaults检索字典数据

时间:2016-11-13 18:58:35

标签: ios dictionary swift3 xcode8 userdefaults

你们能否对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类型时,它很好......我有什么遗漏来制作这本词典吗?

1 个答案:

答案 0 :(得分:2)

首先,您的代码将无法编译。

其次,类型为[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")

希望它可以帮助你:)