Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class 是否引用字典中的嵌套枚举?_Class_Swift_Enums_Nested - Fatal编程技术网

Class 是否引用字典中的嵌套枚举?

Class 是否引用字典中的嵌套枚举?,class,swift,enums,nested,Class,Swift,Enums,Nested,Swift似乎不允许从字典中引用嵌套枚举。我可以简单地将枚举移出类,这将解决问题,但我需要在另一个类下创建另一个枚举名称状态。所以它需要是一个嵌套的枚举 class User { enum Status: String { case Alive = "alive" case Dead = "dead" } } var userStatuses = [User.Status: String]() 如果使用类型别名,则该选项有效: class U

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

class User {

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

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

如果使用
类型别名
,则该选项有效:

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"

试试非速记版本

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

当使用速记版本时,它看起来像一个bug,但非速记版本似乎工作正常。

Hmmm似乎是Swift中的bug是的,我也不觉得它很优雅。这是Swift中的一个bug,向appleI报告。我同意这是一个bug,特别是因为长手版本工作正常。