我创建了这样的枚举:
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'
如何从该字典中提取值?
答案 0 :(得分:1)
字典的values
属性返回一个惰性集合,可以在循环中使用它。如果想要传统数组,请使用其array
属性:
var audioCodecs = AudioCodecsType.names.values.array
附注:您可以将names
属性重新定义为:
static let names = [
MPEG4AAC : MPEG4AAC.rawValue,
iLBC : iLBC.rawValue
]
不太容易出现输入错误:)