繁体   English   中英

类型枚举不符合协议“ CollectionType”

[英]Type enum does not conform to protocol 'CollectionType'

我创建了这样的枚举:

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'

如何从该词典中提取值?

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

var audioCodecs = AudioCodecsType.names.values.array

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM