我正在從swift數據塊中讀取設置,並且希望將其填充到結構中以便於訪問和輸入正確性。有沒有一種簡潔的方式來分配值的結構成員?如使用下標來自我?Swift:從值數組批量分配struct成員
let settings : [UInt] = [5, 5, 121, 700, 108, 1452, 6655, 10]
struct Header {
var version : UInt8?
var options : UInt8?
var records : UInt16?
var timeout : UInt16?
var left : UInt16?
var right : UInt16?
var middle : UInt16?
var speed : UInt8?
init(values: [UInt]) {
let m = Mirror(reflecting: self)
var labels : [String] = []
for (n, _) in m.children {
labels.append(n!)
}
for (h, v) in zip(labels, values) {
print("\(h) -> \(v)")
self[h] = v //error: type 'Header' has no subscript members
}
}
}
let h = Header(values: settings)
跟進
感謝您的解決方案,ColGraff。
在我的情況數據來自於從多個地方,在值的陣列的形式。下面將幫助
let settings : [UInt] = [5, 5, 121]
let labels : [Header.Keys] = [.version, .options, .records]
var data : [Header.Keys : UInt] = [:]
zip(labels, settings).forEach { data[$0] = $1 }
眼看自己不是字典或數組,下標不起作用。 – ryantxr