【发布时间】:2014-07-24 21:18:16
【问题描述】:
有没有办法获取数组中枚举的所有值?
假设我有以下代码:
enum Suit {
case Spades, Hearts, Diamonds, Clubs
}
有没有办法获取下面的数组?
[Spades, Hearts, Diamonds, Clubs]
【问题讨论】:
标签: swift
有没有办法获取数组中枚举的所有值?
假设我有以下代码:
enum Suit {
case Spades, Hearts, Diamonds, Clubs
}
有没有办法获取下面的数组?
[Spades, Hearts, Diamonds, Clubs]
【问题讨论】:
标签: swift
我不知道是否有办法做到这一点。这是一个非常好的问题,希望有人能找到另一种更通用的方法。 无论如何,我已经做了一些可以解决问题的方法:
这里是枚举:
// SuitCount is the last one, so the total of elements (used) is SuitCount-1
enum Suit: Int {
case Spades, Hearts, Diamonds, Clubs, SuitCount
}
返回值的函数:
func getValueFromSuitAtIndex(#indexOfElement: Int) -> String {
var value = ""
switch indexOfElement {
case 0:
value = "Spades"
case 1:
value = "Hearts"
case 2:
value = "Diamonds"
case 3:
value = "Clubs"
default:
value = ""
}
return value
}
在另一个函数中,随心所欲:
var suitElements = String[]()
for index in 0...Suit.SuitCount.toRaw()-1 {
suitElements.append(self.getValueFromSuitAtIndex(indexOfElement: index))
}
// suitElements printed is: [Spades, Hearts, Diamonds, Clubs]
println(suitElements)
不确定这是否是您想要的,但希望对您有所帮助。
编辑 1:
另一种解决方案,更好: https://stackoverflow.com/a/24137319/2061450
【讨论】: