Как перебрать словарь в Swift 5? - PullRequest
0 голосов
/ 28 марта 2019

В Swift 4 я мог работать с кодом ниже, но в Swift 5 я получаю следующую ошибку: Type 'Dictionary<String, String>.Values.Iterator' does not conform to protocol 'Sequence'

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

for userId in userIds {
    // User setup
}

Каков правильный путь в Swift 5 сейчас?

Ответы [ 4 ]

5 голосов
/ 28 марта 2019
let dictionary: [String: Int] = ["a": 1, "b": 2]

for (key, value) in dictionary {
    print(key, value)
}
1 голос
/ 28 марта 2019

Вы можете попробовать итератор так:

 let users = ["a":11, "b":12]
 var userIds = users.values.makeIterator()
 while let next = userIds.next() {
    print(next) // 11 \n 12
 }
0 голосов
/ 02 мая 2019

Swift 4, swift5 и выше

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

        for (key, value) in dict {
            print(key, value)
        }
0 голосов
/ 28 марта 2019

Вы можете сделать просто

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