Swift: Convert enum value to String?

enums, string, swift

Solution

Not sure in which Swift version this feature was added, but right now (Swift 2.1) you only need this code:

enum Audience: String {
    case public
    case friends
    case private
}

let audience = Audience.public.rawValue // "public"

You can also assign custom strings to each case:

enum Audience: String {
    case public = "The Public"
    case friends = "My Friends"
    case private = "Private Audience"
}

let audience = Audience.public.rawValue // "The Public"

When strings are used for raw values, the implicit value for each case is the text of that case’s name.

[...]

enum CompassPoint: String {
    case north, south, east, west
}

In the example above, CompassPoint.south has an implicit raw value of "south", and so on.

You access the raw value of an enumeration case with its rawValue property:

let sunsetDirection = CompassPoint.west.rawValue
// sunsetDirection is "west"

Source.

Problem

Given the following enum: ``` enum Audience { case Public case Friends case Private } ``` How do I get the string `"Public"` from the `audience` constant below? ``` let audience = Audience.Public ```

Original source

Related problems