我在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,这是否在花括号中?我该怎么办。请不要自作聪明评论。提前谢谢。
答案 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
}