【发布时间】:2019-05-18 11:27:39
【问题描述】:
我有一个表格视图,每个单元格都被链接到字典中的一个数组。
var buttonAction : [String: [ButtonAction]] = [:]
下面是buttonAction的结构体
struct ButtonAction: Codable {
var action: String
var array_linked_of_buttons: [[String:String]]
init(action: String, array_linked_of_buttons: [[String:String]]) {
self.action = action
self.array_linked_of_buttons = array_linked_of_buttons
}
}
解释整个代码有点复杂,但是当我将两个按钮连接在一起时,我可以获得变量“singleAction”的数据,然后可以将其添加到按钮操作字典“array_linked_of_buttons”中。
let singleAction = [linkedButtonUUID: connectorMarker.UUIDpic.uuidString, linkedButtonCategory: "", linkedButtonName: connectorMarker.name]
let mainMarkerAction = mainMarker.buttonAction["button actions array"]!
for existingMarker in mainMarkerAction {
actionArray.append(existingMarker)
}
var actionSub = actionArray[indexRowTag].array_linked_of_buttons
if let addAction = actionSub.filter({$0[linkedButtonUUID] == connectorMarker.UUIDpic.uuidString}).first {
print("MARKER Exists", addAction)
} else {
actionSub.append(singleAction)
print("UPDATED MARKER", actionSub)
}
let action = ButtonAction(action: actionArray[indexRowTag].action, array_linked_of_buttons: actionSub)
//ISSUE--?? mainMarker.buttonAction.updateValue(VALUE forKey: "button actions array")
saveData()
我可以确定需要编辑字典中的哪一项,但如何更新该特定值?我真的很困惑,它只是创建了一个新项目,但我想更新以前的项目。
例如,我想附加项目 0 的“array_linked_buttons”,并有 4 个项目而不是 3 个。
我已经搜索了其他问题,但我仍然可以解决。 非常感谢任何为我指明正确方向的帮助!
【问题讨论】:
标签: arrays swift dictionary nested