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

时间:2016-07-27 08:28:35

标签: ios swift enums

我有枚举:

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

    static let allValues = [Description, ToMode, From, To, Days]
}

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

cell.textLabel.text = NewProgramDetails.ToMode

错误:无法分配类型的值' ViewController.NewProgramDetails'输入' String?'

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

3 个答案:

答案 0 :(得分:11)

在swift 3中,你可以使用这个

var enumValue = Customer.Physics
var str = String(describing: enumValue)

答案 1 :(得分:10)

使用枚举的rawValue

cell.textLabel.text = NewProgramDetails.ToMode.rawValue

答案 2 :(得分:6)

除了使用rawValue

NewProgramDetails.ToMode.rawValue // "To Mode"

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

String(NewProgramDetails.ToMode)

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