2017-03-09 71 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")!) 
     } 
    } 
}