Swift wyliczenia nie można mieć krotek jako typ wartości surowca.
Alternatywne rozwiązania obejmują przechowywania kodu i wynikające z opisu, że:
enum ErrorCode: Int, CustomStringConvertible {
case Generic = 0
case DB = 909
var description: String {
switch self {
case .Generic:
return "Unknown"
case .DB:
return "Database"
}
}
}
... lub przechowywania wartości skojarzone z kodem i opisem w przypadkach wyliczeniowych się:
enum Error {
case Generic(Int, String)
case DB(Int, String)
}
Jeśli "Po prostu szukamy stałych wartości, tak samo działałaby sugestia @ matt dotycząca organizacji ich w ramach struct
.
Ktoś wie, dlaczego nie jest to dozwolone w Swift? – agy
możesz podać swój enum inicjator dla wyliczenia, który dostanie krotkę i zainicjalizujesz skrzynkę, której potrzebujesz. Może tego właśnie potrzebujesz ... A potem możesz po prostu zadzwonić do MyCustomEnum (tuple: (1, "myString")) i to zadziała. A wewnątrz enum inicjalizatora możesz użyć Swiftsa pasującego do switcha, aby zrobić cokolwiek, czego potrzebujesz. – Fawkes