【问题标题】:How to get all values of an enum in swift [duplicate]如何快速获取枚举的所有值[重复]
【发布时间】:2014-07-24 21:18:16
【问题描述】:

有没有办法获取数组中枚举的所有值?

假设我有以下代码:

enum Suit {
    case Spades, Hearts, Diamonds, Clubs
}

有没有办法获取下面的数组?

[Spades, Hearts, Diamonds, Clubs]

【问题讨论】:

    标签: swift


    【解决方案1】:

    我不知道是否有办法做到这一点。这是一个非常好的问题,希望有人能找到另一种更通用的方法。 无论如何,我已经做了一些可以解决问题的方法:

    这里是枚举:

    // 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 2014-02-02
      • 2012-08-11
      • 2011-01-17
      • 1970-01-01
      • 2012-12-28
      相关资源
      最近更新 更多