使用表示秒60,30和15的三位分段控件。枚举的代码:
enum RefreshRate: Int {
case sixty = 0
case thirty
case fifteen
func refreshEvery() -> Double {
switch self {
case .sixty: return 3600.0
case .thirty: return 1800.0
case .fifteen: return 900.0
}
}
}
用过:
let defaultValue = UserDefaults.standard.integer(forKey: "refreshRate")
let refreshInterval = RefreshRate(rawValue: defaultValue)?.refreshEvery()
效果很好。
在枚举的第一种情况下,是否有更多'Swifty'方法来获取整数60,而不使用函数或switch语句?
答案 0 :(得分:0)
您可以使用计算属性返回refreshEvery
的值:
enum RefreshRate: Int {
case sixty = 0
case thirty
case fifteen
var refreshEvery: Double {
return 60 * [60, 30, 15][self.rawValue]
}
}
let rate = RefreshRate.sixty
print(rate.rawValue) // 0
print(rate.refreshEvery) // 3600.0