Получить значение enum элемента по его ключу в строке Swift
В общем есть большой enum (более 1000 элементов), в котором нужно получить значение по ключу. Причем значение это строка.
public struct Awesome {
public enum Solid: String, Amazing {
case ad = "\u{f641}"
case addressBook = "\u{f2b9}"
case addressCard = "\u{f2bb}"
case adjust = "\u{f042}"
case airFreshener = "\u{f5d0}"
...
}
}
По умолчанию вызов иконки происходит следующим образом
Awesome.Solid.ad.image
Однако мне нужно производить передавать в вызов строку с названием иконки, что то типа такого:
let iconName = "ad"
Awesome.Solid.iconName.image
тут я закономерно получаю ошибку, что не существует такого элемента
есть ли способ обратиться таким образом к enum?
Ответы (1 шт):
Автор решения: Oleg Soloviev
→ Ссылка
Можно вот так, например:
enum Solid: String, CaseIterable {
case ad = "\u{f641}"
case addressBook = "\u{f2b9}"
case addressCard = "\u{f2bb}"
case adjust = "\u{f042}"
case airFreshener = "\u{f5d0}"
}
for name in Solid.allCases where name == Solid.ad {
print("\(name.rawValue) is a icon.")
}
Или вот так:
print("\(Solid.ad.rawValue) is a icon.")