在字典中引用嵌套枚举?

时间:2015-02-03 23:00:34

标签: class swift enums nested

似乎Swift不允许从字典中引用嵌套枚举。我可以简单地将枚举移出类,这将解决问题,但我需要在另一个类下创建另一个枚举名称Status。所以它需要是一个嵌套的枚举

class User {

    enum Status: String {
        case Alive = "alive"
        case Dead = "dead"
    }
}

var userStatuses = [User.Status: String]()

2 个答案:

答案 0 :(得分:1)

如果您使用typealias

,则有效
class User {
    enum Status: String {
        case Alive = "alive"
        case Dead = "dead"
    }
}

typealias Key = User.Status

var myDictionary = [Key: String]()
myDictionary[.Alive] = "something"

println(myDictionary[.Alive]!) // prints "something"

答案 1 :(得分:1)

尝试使用非速记版本。

var statuses = Dictionary<User.Status, String>()

使用速记版本[User.Status: String]()时看起来像是一个错误,但非简写版似乎可以正常工作。