如何使用 userdefaults.standard 永久保存二维数组数据

How to save 2d array data permanently using userdefaults.standard

我正在尝试使用 userdefaults 保存二维数组数据,但出现此错误无法将类型“[[String]]”的值转换为预期的参数类型'String' 这是我的代码

var tempQuestion2 = [tempQuestion]
        if var tempData = UserDefaults.standard.stringArray(forKey: "tempData")
        {
            tempData.append(tempQuestion2)
            tempQuestion2 = tempData
        }
UserDefaults.standard.set(tempQuestion2, forKey: "tempData")

tempQuestion 是一个字符串数组,其中包含 [“9+1=10”, “5+4=9”] 之类的数据,我希望 tempQuestion2 为 [["9+1=10, "5+4= 9"], ["3+4=7", "4+1=5"]] 我猜我的问题在 UserDefaults.standard.stringArray。我的问题与 link 不同,因为那个问题是关于字典而不是数组的数组。

将数组的数组保存和加载到 UserDefaults 没有问题,要保存您的数据,请使用:

UserDefaults.standard.set(tempQuestion2, forKey: "tempData")

要读回(和更新)数组数组,请使用:

// Assuming tempQuestion is [String]
if var tempData = UserDefaults.standard.array(forKey: "tempData") as? [[String]] {
    tempData.append(tempQuestion2)
    UserDefaults.standard.set(tempData, forKey: "temp")

}