从 UserDefaults 中检索字典数组

Retrieving an array of dictionaries from UserDefaults

我正在尝试检索存储在 UserDefaults 中的字典数组,但我不知道如何最好地做到这一点。

这是我目前的情况:

let userDefaults = UserDefaults.standard
var userWorkouts: [Dictionary<String,String>] = []
userWorkouts = userDefaults.object(forKey: "SavedDict") as? [Dictionary<String,String>] 

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

您已将 userWorkouts 声明为非可选变量。但是表达式 userDefaults.object(forKey: "SavedDict") as? [Dictionary<String,String>] returns 是一个可选数组,因此出现错误消息。

您可以将其更改为:

userWorkouts = userDefaults.object(forKey: "SavedDict") as? [Dictionary<String,String>] ?? []

或者将你的三行代码减少为:

var userWorkouts = UserDefaults.standard.object(forKey: "SavedDict") as? [Dictionary<String,String>] ?? []