How to get all values of an enum in swift
本问题已经有最佳答案,请猛点这里访问。
是否有方法获取数组中枚举的所有值?
假设我有以下代码:
1 2 3 | enum Suit { case Spades, Hearts, Diamonds, Clubs } |
是否有获取以下数组的方法?
1 | [Spades, Hearts, Diamonds, Clubs] |
我不知道有没有办法。这是一个很好的问题,希望有人能找到另一种方法,那就是我的。不管怎样,我已经做了一些事情来达到这个目的:
这里的枚举:
1 2 3 4 | // SuitCount is the last one, so the total of elements (used) is SuitCount-1 enum Suit: Int { case Spades, Hearts, Diamonds, Clubs, SuitCount } |
返回值的函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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 } |
在另一个函数中,只要您愿意:
1 2 3 4 5 6 | 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