首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Swift:是否将枚举值转换为字符串?

Swift:是否将枚举值转换为字符串?
EN

Stack Overflow用户
提问于 2014-07-11 23:16:06
回答 14查看 137.4K关注 0票数 167

给定以下枚举:

代码语言:javascript
复制
enum Audience {
    case Public
    case Friends
    case Private
}

如何从下面的audience常量中获取字符串"Public"

代码语言:javascript
复制
let audience = Audience.Public
EN

回答 14

Stack Overflow用户

发布于 2017-01-26 17:12:03

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

代码语言:javascript
复制
var enumValue = Customer.Physics
var str = String(describing: enumValue)

来自Swift how to use enum to get string value

票数 45
EN

Stack Overflow用户

发布于 2014-07-11 23:35:37

现在,我将重新定义枚举为:

代码语言:javascript
复制
enum Audience: String {
    case Public = "Public"
    case Friends = "Friends"
    case Private = "Private"
}

这样我就可以做到:

代码语言:javascript
复制
audience.toRaw() // "Public"

但是,这个新的枚举定义不是多余的吗?我是否可以保留初始枚举定义并执行以下操作:

代码语言:javascript
复制
audience.toString() // "Public"
票数 35
EN

Stack Overflow用户

发布于 2015-02-07 22:26:53

我喜欢在Raw Values中使用Printable

代码语言:javascript
复制
enum Audience: String, Printable {
    case Public = "Public"
    case Friends = "Friends"
    case Private = "Private"

    var description: String {
        return self.rawValue
    }
}

然后我们可以这样做:

代码语言:javascript
复制
let audience = Audience.Public.description // audience = "Public"

代码语言:javascript
复制
println("The value of Public is \(Audience.Public)") 
// Prints "The value of Public is Public"
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24701075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档