Swift枚举:从int值获取字符串枚举的枚举值

时间:2016-12-12 13:37:02

标签: swift string enums

我们正在使用枚举这样的基本数据结构:

enum Industry: String {
    case Industry1 = "Industry 1", Industry2 = "Industry 2", Industry3 = "Industry 3"

     static let allValues = [Industry1, Industry2, Industry3]
}

当我们将值存储在数据库中时,我们将它们存储为Ints / numbers。因此,例如,Industry的值可能是2,即Industry2。

如何将值2映射回枚举中的相关项?所以我可以检索字符串值吗?

3 个答案:

答案 0 :(得分:3)

您可以这样做以拥有任意行业名称:

enum Industry: Int {
    case Industry1 = 1, Industry2, Industry3

    static let allValues = [Industry1, Industry2, Industry3]

    func industryName() -> String {
        switch self {
        case .Industry1: return "Industry A"
        case .Industry2: return "Industry B"
        case .Industry3: return "Industry C"
        }
    }
}

使用示例:

let industry = Industry(rawValue: 2)
industry?.industryName() // prints "Industry B"

答案 1 :(得分:1)

行业没有更好的代表。您应该将行业名称和代码打包在一个更好的结构中,如下所示:

struct Industry {
    var name: String
    var code: Int
}

现在您可以创建一个可以包含所有行业的商店类。 通过枚举,你并没有很好地代表它。为了保存一件事并展示其他东西。

现在,如果您需要保存,industry.code

如果您想显示industry.name

答案 2 :(得分:0)

根据您的设置,您可以:

let n = 2
let stringValue = Industry.allValues[n - 1].rawValue