将数组的数组保存为用户默认值
Saving an array of arrays to user defaults
我可以使用这个将单个数组保存到用户默认值:
var array = [0,0,0]
defaults.set(array, forKey: "SavedArray") //saves array
array = defaults.object(forKey: "SavedArray") as? [Int] ?? [Int]()
但它不会让我保存一个数组数组,我正在尝试这个:
arrayOfArrays = [[0,0,0],[0,0,0],[0,0,0],[0,0,0]]
defaults.set(arrayOfArrays, forKey: "SavedArrayOfArrays") //saves array
arrayOfArrays = [defaults.object(forKey: "SavedArrayOfArrays") as? Array<Int> ?? Array<Int>()] //loads array
它会导致在数组“[[]]”中加载一个空数组,并且不会在数组中保存数组列表。
试试这个
arrayOfArrays = defaults.array(forKey: "arrayOfArrays") as? [[Int]]
或者你可以这样做
arrayOfArrays = defaults.array(forKey: "arrayOfArrays") as? [Array<Int>]
首先,密钥不匹配。您为键 SavedArrayOfArrays
保存数组,但为 arrayOfArrays
加载它
其次,嵌套数组的类型是[[Int]]
或Array<Array<Int>>
,而不是[Int]
或Array<Int>
最后,UserDefaults
得到了一个专门的方法来加载数组
let arrayOfArrays = defaults.array(forKey: "SavedArrayOfArrays") as? [[Int]]
谢谢大家!
我试着像大家建议的那样在最后用 [[Int]] 保存它,然后 xcode 让我将它切换为 [[Int]])!它奏效了!
arrayOfArrays = [[0,0,0],[0,0,0],[0,0,0],[0,0,0]]
defaults.set(arrayOfArrays, forKey: "SavedArrayOfArrays") //saves array
arrayOfArrays = (defaults.array(forKey: "SavedArrayOfArrays") as? [[Int]])! //loads array
我可以使用这个将单个数组保存到用户默认值:
var array = [0,0,0]
defaults.set(array, forKey: "SavedArray") //saves array
array = defaults.object(forKey: "SavedArray") as? [Int] ?? [Int]()
但它不会让我保存一个数组数组,我正在尝试这个:
arrayOfArrays = [[0,0,0],[0,0,0],[0,0,0],[0,0,0]]
defaults.set(arrayOfArrays, forKey: "SavedArrayOfArrays") //saves array
arrayOfArrays = [defaults.object(forKey: "SavedArrayOfArrays") as? Array<Int> ?? Array<Int>()] //loads array
它会导致在数组“[[]]”中加载一个空数组,并且不会在数组中保存数组列表。
试试这个
arrayOfArrays = defaults.array(forKey: "arrayOfArrays") as? [[Int]]
或者你可以这样做
arrayOfArrays = defaults.array(forKey: "arrayOfArrays") as? [Array<Int>]
首先,密钥不匹配。您为键 SavedArrayOfArrays
保存数组,但为 arrayOfArrays
其次,嵌套数组的类型是[[Int]]
或Array<Array<Int>>
,而不是[Int]
或Array<Int>
最后,UserDefaults
得到了一个专门的方法来加载数组
let arrayOfArrays = defaults.array(forKey: "SavedArrayOfArrays") as? [[Int]]
谢谢大家!
我试着像大家建议的那样在最后用 [[Int]] 保存它,然后 xcode 让我将它切换为 [[Int]])!它奏效了!
arrayOfArrays = [[0,0,0],[0,0,0],[0,0,0],[0,0,0]]
defaults.set(arrayOfArrays, forKey: "SavedArrayOfArrays") //saves array
arrayOfArrays = (defaults.array(forKey: "SavedArrayOfArrays") as? [[Int]])! //loads array