我按照
定义了一些范围let range0_15 = 0 ..< 15
let range15_30 = 15 ..< 30
let range30_45 = 30 ..< 45
let range45_60 = 45 ..< 60
我真的想通过尝试
来使用Enum
enum range : Range<Int> {
range0_15 = 0 ..< 15
range15_30 = 15 ..< 30
range30_45 = 30 ..< 45
range45_60 = 45 ..< 60
}
我收到了错误
Type 'CoreDataStach.range' does not comform to protocol RawRepresentable
是否可以定义上面的枚举,如果是,那么我在这里缺少的是什么。
答案 0 :(得分:3)
试试这样:
enum rangeEnum : Int {
case range0_15
case range15_30
case range30_45
case range45_60
var range:Range<Int> {
switch self {
case range0_15 : return 0 ..< 15
case range15_30 : return 15 ..< 30
case range30_45 : return 30 ..< 45
case range45_60 : return 45 ..< 60
}
}
}
然后你可以使用rangeEnumVariable.range
或者
rangeEnum.range0_15.range
答案 1 :(得分:3)
使用结构体尝试这样的事情可能会更好。
struct Ranges{
static let range0_15 = 0 ..< 15
static let range15_30 = 15 ..< 30
static let range30_45 = 30 ..< 45
static let range45_60 = 45 ..< 60
}
if Ranges.range0_15.contains(6){ //Test to true
print("inside range")//Prints "inside range"
}