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

问题描述:

您是否可以通过UserDefaults来了解字典的用法?无法从Swift 3中的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") 

我在控制台一个不错的答案。当我尝试使用int或float类型时,它很好......我有什么缺少的东西来制作这本字典吗?

+1

它应该是'UserDefaults.standard.set(快译通,forKey: “MyDict”)' – jjatie

+0

UserDefaults是一种在视图控制器之间传递数据的可怕方法。 – Paulw11

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

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

希望它可以帮助你:)