如何在Swift中聲明一個數組,可以保存任何enum
字符串類型的值?Swift數組中保存任何枚舉字符串類型
這就是我想做的事:
enum MyEnumType1: String {
case Foo = "foo"
case Bar = "bar"
}
enum MyEnumType2: String {
case Baz = "baz"
}
// ...
// Compiler error: "Type of expression is ambiguous without more context"
var myArray = [ MyEnumType1.Bar, MyEnumType2.Baz ]
// ^need to declare type here, but not sure of correct syntax
// pass array over to a protocol which will iterate over the array accessing .rawValues
兩個枚舉類型是鬆散的聯繫,但肯定不同,我需要保持在這種情況下分離出來的值,在一個枚舉所以混爲一談它們放在一起,並宣佈MyAllIncludingEnumType類型的數組是不可取的。
或者我應該只聲明一個字符串數組並直接添加rawValues?
我可以聲明數組爲[AnyObject]
,但是在嘗試訪問.rawValue
之前,我必須鍵入檢查每個元素,這也不是很好。
目前我只能在這個項目中使用Swift 1.2,因爲它已經在App Store中,而且我需要能夠在Xcode 7開始GM之前發佈更新。
還是有一個更乾淨但完全替代的解決方案,我想要做什麼?
類似於啓動的枚舉。我喜歡。 –