字典追加在 Swift 中不起作用



为什么append(data)不起作用?

import Foundation
//This is working.
let tablelist:[String: String] = [
"red1": "manu1",
"blue1": "chelsea1",
"yellow1": "dort1",
"green1": "nakamura1",
"purple1": "real1"
]
var resulttablelist = [String: String]()
resulttablelist = tablelist
resulttablelist.removeAll()
for data in tablelist {
if data.value.contains("manu1") {
//This append(data) not working. I have an error. I need your help.
var resulttablelist = [String: String]()
resulttablelist.append(data)
print(resulttablelist)
}
}

错误:

//Error!! value of type '[String : String]' has no member 'append' 

此示例代码正常工作。

for data in tablelist {
if data.value.contains("manu1") {
print(data)
}
}

将打印:

(key: "red1", value: "manu1")

Dictionary 在 Swift 中没有 append 方法。您需要使用resulttablelist["manu1"] = data而不是resulttablelist.append(data)

try resulttablelist[Key] = Value

结果表列表是一个字典,所以它需要一个键值对

其中键和值都是字符串

编辑:在您的情况下,这将是

resulttablelist[data.key] = data.value

你不能附加一个键和它的值,你应该把你的追加替换为resulttablelist[data.key] = data.value并且每次重置数组时都要小心 for in 中的行var resulttablelist = [String: String]()

您也可以使用此方法:

YOUR_DICTIONARY.updateValue(_ value: Dictionary.Value, forKey key: Dictionary.Key)

源:

https://developer.apple.com/documentation/swift/dictionary/1539001-updatevalue

把这个变量结果表列表 = 字符串:字符串从刹车出来

import Foundation
//This is working.
let tablelist:[String: String] = [
"red1": "manu1",
"blue1": "chelsea1",
"yellow1": "dort1",
"green1": "nakamura1",
"purple1": "real1"
]
var resulttablelist = [String: String]()
resulttablelist = tablelist
resulttablelist.removeAll()
var newresulttablelist = [String: String]()
for data in tablelist {
if data.value.contains("manu1") {
newresulttablelist.append(data)
print(newresulttablelist)
}
}

最新更新