嵌套枚举作为字典键

时间:2014-12-04 16:27:05

标签: swift dictionary

这有什么原因吗?注意:如果枚举不是嵌套的,则枚举作为字典键。

struct OuterStruct
{
    enum InnerEnum
    {
        case none
        case a
        case b
    }
}

var dict : [OuterStruct.InnerEnum: String] = [OuterStruct.InnerEnum: String]()

1 个答案:

答案 0 :(得分:4)

您可以使用传统方式实例化字典来解决这个问题:

var dict : [OuterStruct.InnerEnum: String] = Dictionary<OuterStruct.InnerEnum, String>()

请注意,您可以使用类型推断并避免指定变量类型:

var dict = Dictionary<OuterStruct.InnerEnum, String>()

至于为什么简写语法不起作用,我没有答案 - 我认为你应该提出一个雷达。我尝试将InnerEnum转换为结构和类,并报告相同的错误。