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

ber*_*ürk 6 dictionary key key-value swift

我有一个包含键字符串和 [issueFieldModal] 数组的键值对,因此我有一个具有 e 选项卡名称的对象元素,而 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]
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Leo*_*bus 9

问题在于,与KeyValuePairs常规词典不同,它不符合Hashable. 不能通过下标进行赋值。您可能有重复的键/值对。它符合RandomAccessCollection这样的要求,因此通过下标只能获取值而不能设置值。

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