我创建了这样的枚举:
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
]
不易出现输入错误 :)
关于ios - 类型枚举不符合协议(protocol) 'CollectionType',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28506405/