2017-03-09 2 views
0

im Grunde, was ich will zu tun wäre,Swift Aufzählungen Komplex RawValues ​​

enum MyEnum : MyObject { 

case first = MyObject(value1, value2, value3) 
... 

} 

Ich habe die Dokumentation geschaut und versuchte, so etwas zu codieren, aber es sieht aus wie es nicht möglich ist, als der rawValue Typ komplex ist.

Meine Fragen sind: so kann diese komplexe Art von Enum getan werden? Wenn nicht, welches Design würden Sie empfehlen, dies zu tun (da ich gerne große Schalterfälle vermeiden würde)?

Vielen Dank! Hier

+0

Ich gehe davon aus, dass, was suchen Sie ähnelt [diese Antwort] (https://stackoverflow.com/questions/41922097/enum-of-structs -in-swift-3-0/41922262 # 41922262). –

Antwort

0

ist ein Beispiel für die Erreichung dieses

enum CroudInfo: String { 
    case bitkom = "Битком" 
    case free = "Свободно" 
    case avarage = "Загружено" 

    func values() -> (title: String, image: UIImage, textColor: UIColor, fullImage: UIImage) { 
     switch self { 
     case .bitkom: 
      return (self.rawValue, UIImage(named: "redValue")!, UIColor(red: 208/255, green: 19/255, blue: 0/255, alpha: 1), UIImage(named: "redImage")!) 
     case .free: 
      return (self.rawValue, UIImage(named: "greenValue")!, UIColor(red: 84/255, green: 175/255, blue: 98/255, alpha: 1), UIImage(named: "greenImage")!) 
     case .avarage: 
      return (self.rawValue, UIImage(named: "yellowValue")!, UIColor(red: 247/255, green: 157/255, blue: 0/255, alpha: 1), UIImage(named: "yellowImage")!) 
     } 
    } 
}