如何将新元素附加到 swift 中的键值对

how to append new element to key value pair in swift

我有一个包含键字符串和 [issueFieldModal] 数组的键值对 所以我有一个对象元素,它有一个选项卡名称,elementArray 元素有一个键和值 属性

var keyValuePair = KeyValuePairs<String, [ISSUEFieldModal]>()
var issueFieldArray = [ISSUEFieldModal]()
for element in elements {
 for newElement in element{
  let issueField = ISSUEFieldModal(newElement.key, newElement.value)
  issueFieldArray.append(issueField)
  }
 keyValuePair = [element.tabName: issueFieldArray]
}

但是当我打印出键值对时,只显示最后一个附加项
我认为它会覆盖旧值并在每个循环中设置

谢谢

问题在于 KeyValuePairs 与常规词典不同,它不符合 Hashable。您不能通过下标分配。您可能重复了 key/value 对。符合RandomAccessCollection所以通过下标只能取值不能设值

keyValuePair = [element.tabName: issueFieldArray] 有效是因为 KeyValuePairs 符合 ExpressibleByDictionaryLiteral 但您不能附加新的键值对,因为它不符合 RangeReplaceableCollection。换句话说,您需要在初始化集合时添加所有键值对。