Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在For循环中添加到字典_Swift_Loops_Dictionary_For Loop - Fatal编程技术网

Swift 在For循环中添加到字典

Swift 在For循环中添加到字典,swift,loops,dictionary,for-loop,Swift,Loops,Dictionary,For Loop,我在树屋的一个项目中与swift游乐场合作。在for循环中向字典添加额外的key:value对时遇到了问题。以下是我的代码: var counter = 0 for (var player) in experiencedPlayers { counter += 1 if counter % 3 == 0 { for team in 1...3 { switch team { case 1: teamSharks.ap

我在树屋的一个项目中与swift游乐场合作。在for循环中向字典添加额外的key:value对时遇到了问题。以下是我的代码:

var counter = 0
for (var player) in experiencedPlayers {
counter += 1
if counter % 3 == 0 {
    for team in 1...3 {
        switch team {
            case 1:
                teamSharks.append(player)
                player["Team"] = "Sharks"
            case 2:
                teamDragons.append(player)
                player["Team"] = "Dragons"
            case 3:
                teamRaptors.append(player)
                player["Team"] = "Raptors"
            default: break
            }
        }
    }
}

此方法不会出错,但应该在玩家字典中添加“团队”:“鲨鱼”等,但事实并非如此。有什么建议吗?

在添加
player
之前,您需要修改
player

    switch team {
        case 1:
            player["Team"] = "Sharks"
            teamSharks.append(player)
        case 2:
            player["Team"] = "Dragons"
            teamDragons.append(player)
        case 3:
            player["Team"] = "Raptors"
            teamRaptors.append(player)
        default: break
        }
    }
这是因为
player
是一种值类型


请注意,这不会对存储在
ExperiencePlayer
中的数据产生任何影响,仅对
teamSharks
等数组中的数据产生任何影响。

,因为玩家仅在for..in中声明在范围内。所以,一旦你试图修改它,它将只在这个范围内工作,就像一个副本。如果你想修改,你需要在你的ExperiencedPlayer中重新分配你的玩家使用你修改过的对象

但是你用“猛禽”覆盖了“团队”的价值。每次你做player[“Team”]=“NewValue”时,你都在取代以前的价值。