Преобразовать строку в enum - PullRequest
       7

Преобразовать строку в enum

0 голосов
/ 29 октября 2018

У меня следующая ситуация

enum FooEnum: Int {
 fooCase = 1245325,
 fooCase2 = 3525325
}

Можно ли как-нибудь передать строку fooCase или fooCase2 типу FooEnum и FooEnum, чтобы сгенерировать переменную типа FooEnum со следующими представлениями перечисления: FooEnum.fooCase или FooEnum.fooCase2

PS: я не могу изменить Int на String, так как я держу заказ с целыми числами.

Пример: (псевдокод)

FooEnum c = FooEnum("fooCase")

c выбрал fooCase

1 Ответ

0 голосов
/ 29 октября 2018

Как структуры и классы, вы можете добавлять инициализаторы в перечисления

enum FooEnum: Int {

    case fooCase = 1245325
    case fooCase2 = 3525325

    public init?(_ string: String) {
        switch string {
        case "fooCase": self = .fooCase
        case "fooCase2": self = .fooCase2
        default: return nil
        }
    }
}

let c = FooEnum("fooCase") // `FooEnum c =` is ObjC syntax ;)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...