如何在Swift中遍历每个键都有多个值的字典
我使用这段代码的目标是遍历一个字典,其中键是一个特定的学院,这些键的值是学院的颜色。当用户通过在文本字段中键入来选择学院时,背景将更改为学院颜色。当我只使用一种颜色在字典中迭代时,效果很好,但现在我引入了第二种颜色,我的代码不断出现错误“For in loop requires'[UIColor]'以符合“Sequence”,下面是我的代码。我将非常感谢任何帮助 对于我的字典,我使用颜色文字来轻松选择颜色:如何在Swift中遍历每个键都有多个值的字典,swift,loops,dictionary,for-in-loop,Swift,Loops,Dictionary,For In Loop,我使用这段代码的目标是遍历一个字典,其中键是一个特定的学院,这些键的值是学院的颜色。当用户通过在文本字段中键入来选择学院时,背景将更改为学院颜色。当我只使用一种颜色在字典中迭代时,效果很好,但现在我引入了第二种颜色,我的代码不断出现错误“For in loop requires'[UIColor]'以符合“Sequence”,下面是我的代码。我将非常感谢任何帮助 对于我的字典,我使用颜色文字来轻松选择颜色: var collegeDict = ["UCLA": [#color
var collegeDict = ["UCLA": [#colorLiteral(red: 0.2196078449, green: 0.007843137719, blue: 0.8549019694, alpha: 1), #colorLiteral(red: 0.9529411793, green: 0.6862745285, blue: 0.1333333403, alpha: 1)], "Stanford": [#colorLiteral(red: 0.3098039329, green: 0.01568627544, blue: 0.1294117719, alpha: 1), #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)]]
这是出现错误的迭代器:
@IBAction func Button1Pressed(_ sender: Any) {
for (key, colors) in collegeDict {
for (primaryColor, secondaryColor) in colors {
if collegeName == textField1.text {
self.View1.backgroundColor = primaryColor
self.Button1.backgroundColor = primaryColor
for(primaryColor,secondaryColor)in colors
实际上是(索引,元素)
语法,但是您必须添加.enumerated()
然而,即使使用enumerated()
,语法也毫无意义
等等,这样做(有点)道理
@IBAction func Button1Pressed(_ sender: Any) {
for (_, colors) in collegeDict {
for (index, color) in colors.enumerated() {
if collegeName == textField1.text {
switch index {
case 0: self.View1.backgroundColor = color
case 1: self.Button1.backgroundColor = = color
default: break
}
这是一个严肃的解决方案:
colors
是一个数组,您可以使用索引订阅获取第一个和第二个元素
@IBAction func Button1Pressed(_ sender: Any) {
for (_, colors) in collegeDict {
if collegeName == textField1.text {
self.View1.backgroundColor = colors[0]
self.Button1.backgroundColor = colors[1]
实际上,如果collegeName==textField1.text{与循环无关,那么比较
也没有意义。@MarcE如果它对您有效,请接受答案。
@IBAction func Button1Pressed(_ sender: Any) {
for (_, colors) in collegeDict {
if collegeName == textField1.text {
self.View1.backgroundColor = colors[0]
self.Button1.backgroundColor = colors[1]