在swift中的typedef枚举

时间:2014-06-10 17:22:22

标签: enums swift

我在Swift中重写了我的Objective C应用程序,我有一个关于enum的问题。在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,这是否在花括号中?我该怎么办。请不要自作聪明评论。提前谢谢。

1 个答案:

答案 0 :(得分:44)

这不是你在Swift中声明枚举的方式。你不能简单地列出你在C中的值。枚举可以使用以下技术在C中完成。

enum TimerState {
    stopped,
    running
};

在swift中,您必须使用case关键字。

enum TimerState {
    case stopped
    case running
}

对于typedef,swift中有一个typealias

typealias SomeNewEnum = TimerState

修改:如果要为枚举分配原始类型,可以这样做。

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