类型枚举不符合协议' CollectionType'

时间:2015-02-13 18:37:12

标签: ios swift enums

我创建了这样的枚举:

enum AudioCodecsType: String {
    case MPEG4AAC = "MPEG-4 Audio", iLBC = "iLBC"

    static let names = [
        MPEG4AAC : "MPEG 4 Audio", iLBC : "iLBC"]
}

后来我想从names字典中获取值:

var audioCodecs = AudioCodecsType.names.values as [String]

但我收到编译错误:Type 'AudioCodecsType.Type' does not conform to protocol 'CollectionType'

如何从该字典中提取值?

1 个答案:

答案 0 :(得分:1)

字典的values属性返回一个惰性集合,可以在循环中使用它。如果想要传统数组,请使用其array属性:

var audioCodecs = AudioCodecsType.names.values.array

附注:您可以将names属性重新定义为:

static let names = [
    MPEG4AAC : MPEG4AAC.rawValue,
    iLBC : iLBC.rawValue
]

不太容易出现输入错误:)