How to save a multidimensional array to UserDefaul

2019-09-06 06:36发布

问题:

Have created an Array like this in Swift

var MyArray: [String:[String:[Int]]] = [
    "xx": ["x1": [1, 2, 3], "x2": [4, 5, 6], "x3": [7, 8, 9]],
    "yy": ["y1": [10, 11, 12], "y2": [13, 14, 15], "y3": [16, 17, 18]]


]

And I wonder how to save this to the UserDefaults

回答1:

As @Eric mentioned in comment this is not a multidimensional array it is nested dictionary, so you can set it using set(_:forKey:) and get dictionary using dictionary(forKey:).

Save dictionary in UserDefaults

let defaults = UserDefaults.standard
defaults.set(MyDict, forKey:"DicKey")

Retrieve dictionary from UserDefaults

if let dic = UserDefaults.standard.dictionary(forKey: "DicKey") as? [String:[String:[Int]]]  {
    print(dic)
}