gpt4 book ai didi

swift - 如何在 Swift 中遍历每个键有多个值的字典

转载 作者:行者123 更新时间:2023-12-04 03:56:31 24 4
gpt4 key购买 nike

我使用此代码的目标是遍历字典,其中的键是特定的大学,这些键的值是大学的颜色。当用户通过在文本字段中输入大学来选择他们的大学时,背景会更改为他们的大学颜色。当我只使用一种颜色遍历字典时完美无缺,但现在我引入了第二种颜色,我的代码不断出现错误“For-in loop requires '[UIColor]' to conform to 'Sequence'”,这是我的代码。我将不胜感激

对于我的字典,我使用 Color Literal 轻松选择颜色:

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 实际上是 (index, element) 语法但是你必须添加 .enumerated()

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]

实际上,与循环无关的比较 if collegeName == textField1.text { 也没有意义。

关于swift - 如何在 Swift 中遍历每个键有多个值的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63799696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com