Swift 从UserDefaults检索字典数组

Swift 从UserDefaults检索字典数组,swift,dictionary,nsuserdefaults,Swift,Dictionary,Nsuserdefaults,我试图检索存储在UserDefaults中的字典数组,但我不知道如何最好地检索 以下是我到目前为止的情况: let userDefaults = UserDefaults.standard var userWorkouts: [Dictionary<String,String>] = [] userWorkouts = userDefaults.object(forKey: "SavedDict") as? [Dictionary<String,String>] 让u

我试图检索存储在UserDefaults中的字典数组,但我不知道如何最好地检索

以下是我到目前为止的情况:

let userDefaults = UserDefaults.standard
var userWorkouts: [Dictionary<String,String>] = []
userWorkouts = userDefaults.object(forKey: "SavedDict") as? [Dictionary<String,String>] 
让userDefaults=userDefaults.standard
var userWorkouts:[字典]=[]
userWorkouts=userDefaults.object(forKey:“SavedDict”)作为?[字典]

有人能给我指出正确的方向吗?

您已将
userWorkouts
声明为非可选变量。但是表达式
userDefaults.object(forKey:“SavedDict”)是什么?[Dictionary]
返回一个可选数组,因此返回错误消息

您可以将此更改为:

userWorkouts = userDefaults.object(forKey: "SavedDict") as? [Dictionary<String,String>] ?? []
userWorkouts=userDefaults.object(forKey:“SavedDict”)作为?[字典]??[]
或者将您的三行代码缩减为:

var userWorkouts = UserDefaults.standard.object(forKey: "SavedDict") as? [Dictionary<String,String>] ?? []
var userWorkouts=UserDefaults.standard.object(forKey:“SavedDict”)作为?[字典]??[]

我收到以下错误:“可选类型“[Dictionary]”的值必须解包为“[Dictionary]”类型的值。“如果用户默认值中没有与该键关联的值,您希望发生什么情况?