In Xcode 6.1, the enumerations toRaw
and fromRaw
functions don't work anymore:
enum TestEnum : String {
case A = "a"
case B = "b"
}
if let a = TestEnum.fromRaw("a") {
prinln(a.toRaw())
}
Errors:
'TestEnum' does not have a member named 'toRaw'
'TestEnum.Type' does not have a member named 'fromRaw'
Create an enum from a raw using the failable initializer with rawValue
and get the raw value using the attribute rawValue
.
if let a = TestEnum(rawValue: "a") {
println(a.rawValue)
}
Read the changelog for more information.
It looks as if toRaw() and fromRaw() have been replaced with rawValue in Xcode 6.1 Beta (Build 6A1030). If CardSuits was an enum and .Clubs a case, then you retrieve the raw value with:
let suit1 = CardSuits.Clubs.rawValue
The result will be '1' if .Clubs was raw value '1'
To retrieve the String from the raw value pass the raw value as a parameter of the enum like:
let suit1 = CardSuits(rawValue:1) (this will be an optional value)
The result will be the enum value of raw value '1', in this example .Clubs