Swift4.2中,可以通过以下步骤将由"struct"构造的二维数组保存到UserDefaults:
import Foundation
struct MatrixElement: Codable {
var value: Int
}
struct Matrix: Codable {
var elements: [[MatrixElement]]
}
let matrix = Matrix(elements: [[MatrixElement(value: 1), MatrixElement(value: 2)], [MatrixElement(value: 3), MatrixElement(value: 4)]])
let encoder = JSONEncoder()
if let encodedData = try? encoder.encode(matrix) {
// 将编码后的数据保存到UserDefaults
UserDefaults.standard.set(encodedData, forKey: "matrixKey")
}
if let encodedData = UserDefaults.standard.data(forKey: "matrixKey") {
let decoder = JSONDecoder()
if let decodedMatrix = try? decoder.decode(Matrix.self, from: encodedData) {
// 使用解码后的Matrix实例
let elements = decodedMatrix.elements
// ...
}
}
这样,你就可以将由"struct"构造的二维数组保存到UserDefaults中,并在需要时从中获取。请注意,这只是一种保存和获取二维数组的方法,你可以根据实际需求进行调整和扩展。
领取专属 10元无门槛券
手把手带您无忧上云