Swift - 枚举采用整数并确定范围

Kev*_*VuD 2 enums ios swift

我想要一个枚举,它可以采用一个 Integer 值并使用它来确定与它关联的情况并返回图像。下面是我想要实现的东西,但我不太知道如何实现它。非常感谢您的帮助!

enum Icon (input: Int) {
//use input value to check which case need to return image name
   case 0...100
   case 101...200
   case 201+

var image: UIImage {
    switch self {
        case .0...100: return UIImage(named: "plane.png")!
        case .101...200: return UIImage(named: "arrow.png")!
        case .201+: return UIImage(named: "logo.png")!
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Bal*_*Ben 5

如果你坚持使用枚举,你可以使用这个:

enum Icon: String {
    case plane: "plane.png"
    case arrow: "arrow.png"
    case logo:  "logo.png"

    static func image(for value: Int) -> UIImage {
        let icon: Icon
        switch value {
        case 0...100:
            icon = .plane
        case 101...200:
            icon = .arrow
        case 200...:
            icon = .logo
        default:
            fatalError("Invalid int value")
        }

        return UIImage(named: icon.rawValue)!
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然肯定以下更简单:

func image(for value: Int) -> UIImage {
    switch value {
        case 0...100:
            return UIImage(named: "plane.png")!
        case 101...200:
            return UIImage(named: "arrow.png")!
        case 200...:
            return UIImage(named: "logo.png")!
        default:
            fatalError("Invalid int value")
    }
}
Run Code Online (Sandbox Code Playgroud)