Swift Enumerations .toRaw and .fromRaw with Xcode 6.1

為{幸葍}努か 提交于 2019-12-29 06:34:19

问题


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'

回答1:


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.




回答2:


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



来源:https://stackoverflow.com/questions/25919075/swift-enumerations-toraw-and-fromraw-with-xcode-6-1

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!