как получить индекс как Int из индекса? в словаре Swift - PullRequest
0 голосов
/ 24 января 2020

Мне нужно получить индекс, например, 0,1,2,3 ... по ключу - collectionName, который является строкой. Но я могу получить только «Индекс?»

Что я делаю не так? У меня есть словарь - коллекции

var collections: [String: (collectionName: String, isSynched: Bool)] = [:]

//some code

let index = collections.firstIndex{$0.key == collectionName}
//index: Dictionary<String, (collectionName: String, isSynched: Bool)>.Index?

Но мне нужно Int, как в простом массиве ["m", "s", "o"]

индекс "m" равен 0

индекс "s" равен 1

индекс "o" равен 2

1 Ответ

0 голосов
/ 24 января 2020

Как сказал Йоаким Даниэльсон, я сделал

let value = collections.map {$0.key}.firstIndex(of: collectionName)

, а затем

let index = -(value.unsafelyUnwrapped.distance(to: 0))

, и это решило проблему

...