Swift如何使用enum来获取字符串值

Mat*_*der 8 enums ios swift

我有枚举:

enum NewProgramDetails: String {
    case Description = "Description", ToMode = "To Mode", From = "From", To = "To", Days = "Days"

    static let allValues = [Description, ToMode, From, To, Days]
}
Run Code Online (Sandbox Code Playgroud)

我想使用这个枚举在我的单元格中显示取决于indexPath:

cell.textLabel.text = NewProgramDetails.ToMode
Run Code Online (Sandbox Code Playgroud)

错误:无法指定类型'ViewController.NewProgramDetails'的值来键入'String?'

如何使用枚举值将其作为字符串分配给标签文本?

Dan*_*nov 11

在swift 3中,你可以使用它

var enumValue = Customer.Physics
var str = String(describing: enumValue)
Run Code Online (Sandbox Code Playgroud)

  • 显然,不适用于实时值。像`avplayeritem.status`。 (2认同)

vad*_*ian 10

使用rawValue枚举:

cell.textLabel.text = NewProgramDetails.ToMode.rawValue
Run Code Online (Sandbox Code Playgroud)


Swe*_*per 6

除了使用rawValue,

NewProgramDetails.ToMode.rawValue // "To Mode"
Run Code Online (Sandbox Code Playgroud)

你也可以调用String.init来获取枚举值的字符串表示:

String(NewProgramDetails.ToMode)
Run Code Online (Sandbox Code Playgroud)

这将返回"ToMode",这可能与rawValue您指定的有点不同.但是如果你懒得不分配原始值,String.init可以使用这个方法!