枚举:"无法构造,因为它没有可访问的初始值设定项"

Rya*_*ert 7 swift

我无法使用rawValue初始化程序初始化枚举.有什么想法吗?错误评论如下:

//: Playground - noun: a place where people can play
// Xcode Version 7.3 (7D175)

import UIKit

enum Theme {
    case Default, Dark, Graphical
}

let possibleTheme = Theme(rawValue: 1) 
// Error: 'Theme' cannot be constructed because it has no accessible initializers.
Run Code Online (Sandbox Code Playgroud)

Tim*_*len 24

enum Theme: Int {
    case Default, Dark, Graphical
}

let possibleTheme = Theme(rawValue: 1) // Dark
Run Code Online (Sandbox Code Playgroud)

除非指定其类型,否则枚举没有原始值.可能的原始值类型是String,Character以及任何数字类型.文档

  • 这完全取决于OP的项目.有时,如果你有一个`UISegmentedControl`,从`Int`创建一个`enum`会非常方便. (3认同)