为什么我不能将枚举案例放在Int类型的单引号中?

时间:2018-03-18 20:42:46

标签: swift enums

我按照教程说它输入以下代码:

import UIKit

enum Theme: Int {
  //1
  case `default`, dark, graphical

  //2
  private enum Keys {
    static let selectedTheme = "SelectedTheme"
  }

  //3
  static var current: Theme {
    let storedTheme = UserDefaults.standard.integer(forKey: Keys.selectedTheme)
    return Theme(rawValue: storedTheme) ?? .default
  }
}

这似乎很好,但我开始在网上研究Swift中的一个真正的内容。我在网上找到的一条信息说我可以在自己的行上打破每个案例,如下所示:

import UIKit


//We're creating an enum!
enum Theme: Int {

  //1
  case 'default'
  case dark
  case graphical

  //2
  private enum Keys {
    static let selectedTheme = "SelectedTheme"
  }


}

但是我收到一个编译时错误,上面写着' enum' case'中的预期标识符声明,我不知道这意味着什么。任何人都可以解释为什么我不能在这个例子中将每个案例分解出来?

1 个答案:

答案 0 :(得分:0)

感谢上面的精细评论以获得帮助。原因是因为"默认"是一个在Swift语言中保留的关键字,因此为了在我自己的程序中以不同于Swift语言建议的方式使用它,那么我需要在反引号中放置单词。请参阅此SO问题以供参考:Use reserved keyword a enum case