1
votes

Comment boucler sur un dictionnaire dans Swift 5?

Dans Swift 4, je pourrais que le code ci-dessous fonctionne mais dans Swift 5 j'obtiens l'erreur suivante: Tapez 'Dictionary .Values.Iterator' n'est pas conforme au protocole 'Sequence'

guard let userIds = users.values.makeIterator() else { return }

for userId in userIds {
    // User setup
}

Quelle est la bonne manière dans Swift 5 maintenant?


2 commentaires

Même dans Swift 3, je préfère pour userId dans users.values ​​{, veuillez consulter les documentation


users.values.forEach {print ($ 0)}


4 Réponses :


0
votes

Vous pouvez faire simplement

for (_, userId) in users {
    // User setup
}


0 commentaires

9
votes
let dictionary: [String: Int] = ["a": 1, "b": 2]

for (key, value) in dictionary {
    print(key, value)
}

0 commentaires

1
votes

Vous pouvez essayer un itérateur comme celui-ci:

 let users = ["a":11, "b":12]
 var userIds = users.values.makeIterator()
 while let next = userIds.next() {
    print(next) // 11 \n 12
 }


0 commentaires

0
votes

Swift 4, swift5 et supérieur

let dict: [String: Any] = ["a": 1, "b": "hello", "c": 3]

        for (key, value) in dict {
            print(key, value)
        }


0 commentaires