Xcode 7 added the ability to get the string value of an enum case. This is possible now as Swift enums conform to the CustomStringConvertible protocol. When a type conforms to this protocol, it can provide a custom representation when converting an instance to a string. The var description: String { get } property needs to be defined.

For a usage example, lets say there is an enum called UserKey with a rawValue of type String:

enum UserKey: String {
    case firstName = "first_name"
    case lastName = "last_name"
    case age
    case birthDate = "birth_date"
}

You can always get the rawValue of an enum, but now we can also get the string value of the case simply by using the String(describing:) initializer:

let firstNameCaseValue: String = String(describing: UserKey.firstName)
let firstNameRawValue: String = UserKey.firstName.rawValue

print(firstNameCaseValue) // "firstName"
print(firstNameRawValue) // "first_name"