我正在使用一些基本的Swift操作。使用滑块,我想指定相应的标签。由于滑块使用int
来表示位置,因此我将使用枚举进行转换。
enum Temperature: Int {
case 0 = "Zero"
case 1 = "One"
case 2 = "Two"
case 3 = "Three"
}
我想这样称呼:
variable = Temperature.0
任何帮助都是理想的。请让我知道你的想法。
谢谢!
答案 0 :(得分:2)
您可以使用数组:
let temperatures = ["Zero", "One", "Two", "Three"]
let one = temeratures[1]
或元组:
let temperatures = ("Zero", "One", "Two", "Three")
let one = temperatures.1
虽然你不能在后者
中使用运行时值(非文字)答案 1 :(得分:1)
枚举的原始值放在=
的右侧。在您的枚举Temperature
中,原始值类型为Int
,因此您应该这样做:
enum Temperature: Int {
case Zero = 0, One, Two, Three
}
我没有为其他案例写原始值,因为可以推断它们。
现在你可以访问这样的案例:
Temperature.One
“但我想使用整数文字来访问它!”你哭了。
不幸的是,这在Swift中是不可能的。你能得到的最接近的是:
enum Temperature: Int {
case _0 = 0, _1, _2, _3
}
您可以使用初始化程序初始化枚举:
Temperature(rawValue: 1)
答案 2 :(得分:1)
最佳选择我会说你使用字典:
let Temperatures:[Int: String] = [0: "zero", 1:"one"]
然后您可以使用滑块值访问它。在访问不在字典中的值时要注意 - >检查无。
答案 3 :(得分:0)
使用元组,枚举不是为了这个目的。
let temperature = ("Zero", "One", "Two", "Three")
let zero = temperature.0
答案 4 :(得分:0)
您可以尝试这种方式
enum CompassPoint : Int {
case north = 0
case south = 1
case east = 2
case west = 3
}
func checkPoint(compass : CompassPoint) -> String {
switch compass {
case .east:
return "Batsman"
case .south:
return "Bowler"
case .north:
return "Wicket Keeper"
case .west:
return "All Rounder"
}}
print(checkPoint(compass: CompassPoint(rawValue: 3)!))