我在Swift中重写了我的Objective C应用程序,我有一个关于枚举的问题.在Objective C中你会做;
typedef enum {
stopped,
running
} TimerState;
Run Code Online (Sandbox Code Playgroud)
返回错误,Consecutive Declarations on a line must be separated by ‘;’ — Expected declaration — Expected identifier in enum declaration.我阅读了一些关于此的文档,发现你不再typedef在enum之前放了.因此,我认为它会是:
enum {
stopped,
running
} TimerState;
Run Code Online (Sandbox Code Playgroud)
但我不知道如何处理TimerState,这是否在花括号中?我该怎么办.请不要自作聪明评论.提前致谢.
Bri*_*acy 47
这不是你在Swift中声明枚举的方式.您不能简单地在C中列出值.枚举可以使用以下技术在C中完成.
enum TimerState {
stopped,
running
};
Run Code Online (Sandbox Code Playgroud)
在swift中,您必须使用case关键字.
enum TimerState {
case stopped
case running
}
Run Code Online (Sandbox Code Playgroud)
至于typedef,有一个typealias迅速.
typealias SomeNewEnum = TimerState
Run Code Online (Sandbox Code Playgroud)
编辑:如果要为枚举分配原始类型,可以这样做.
enum TimerState: Int {
case stopped = 0
case running // 1
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17257 次 |
| 最近记录: |