Подтвердить что ты не робот

Как получить все значения перечисления в быстрых

Есть ли способ получить все значения перечисления в массиве?

Скажем, у меня есть следующий код:

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

Есть ли способ получить следующий массив?

[Spades, Hearts, Diamonds, Clubs]
4b9b3361

Ответ 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:

Другое решение, лучше: fooobar.com/info/19331/...