【问题标题】:Swift how to use enum to get string valueSwift如何使用枚举获取字符串值
【发布时间】:2016-12-01 03:41:48
【问题描述】:

我有枚举:

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?”

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

【问题讨论】:

  • 你需要访问它的 rawValue。 cell.textLabel.text = NewProgramDetails.ToMode.rawValue
  • 顺便说一句,如果它与它的大小写相同,则无需为其分配相同的字符串。

标签: ios swift enums


【解决方案1】:

使用枚举的rawValue

cell.textLabel.text = NewProgramDetails.ToMode.rawValue

【讨论】:

    【解决方案2】:

    除了使用rawValue

    NewProgramDetails.ToMode.rawValue // "To Mode"
    

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

    String(NewProgramDetails.ToMode)
    

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 显然不适用于实时值。喜欢avplayeritem.status
      • String(describing:) 应该永远用于将任何内容转换为字符串,这不是它的目的,并且在许多情况下会产生意想不到的结果。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多