Подтвердить что ты не робот

Typedef enum в быстром

Я переписываю приложение Objective C в Swift, и у меня есть вопрос о перечислении. В Objective C вы бы сделали:

typedef enum {
stopped,
running
} TimerState;

который возвращает ошибки, Consecutive Declarations on a line must be separated by ‘;’ — Expected declaration — Expected identifier in enum declaration. Я прочитал часть документации об этом и обнаружил, что вы больше не ставите typedef перед перечислением. Поэтому в быстрой я подумал, что это будет:

enum {
stopped,
running
} TimerState;

Но я не знаю, что делать с TimerState, это происходит внутри фигурных скобок? Что я делаю. Прошу прощения. Спасибо заранее.

4b9b3361

Ответ 1

Это не то, как вы объявляете перечисление в Swift. Вы не можете просто перечислить значения, как вы могли в C. Перечисление может быть выполнено на C со следующей техникой.

enum TimerState {
    stopped,
    running
};

В быстром ключевом слове вы должны использовать ключевое слово case.

enum TimerState {
    case stopped
    case running
}

Как и для typedef, в swift есть typealias.

typealias SomeNewEnum = TimerState

Изменить: Если вы хотите назначить необработанный тип для своего перечисления, вы можете сделать это.

enum TimerState: Int {
        case stopped = 0
        case running // 1
}