2017-03-09 77 views
0

基本上,我希望做的是斯威夫特枚舉複雜rawvalues

enum MyEnum : MyObject { 

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

} 

我看過的文件,並試圖編寫類似的東西,但它看起來就像是不可能的,因爲rawvalue類型複雜。

我的問題是:這樣的複雜類型的枚舉可以做到嗎? 如果沒有,您會推薦哪種設計(因爲我想避免製作巨大的開關盒)?

非常感謝!

+0

我認爲你在尋找的是類似[這個答案]的例子(https://stackoverflow.com/questions/41922097/enum-of-structs -in-迅速-3-0/41922262#41922262)。 –

回答

0

這裏是實現這一

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")!) 
     } 
    } 
}