Reputation: 1078
I am defining some of ranges by following
let range0_15 = 0 ..< 15
let range15_30 = 15 ..< 30
let range30_45 = 30 ..< 45
let range45_60 = 45 ..< 60
I really want to use Enum
for this by trying
enum range : Range<Int> {
range0_15 = 0 ..< 15
range15_30 = 15 ..< 30
range30_45 = 30 ..< 45
range45_60 = 45 ..< 60
}
And I am getting an error
Type 'CoreDataStach.range' does not comform to protocol RawRepresentable
Is it possible to define an enum like above and if it is yes, what I am missing right here.
Upvotes: 3
Views: 3702
Reputation: 956
Try like this:
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
}
}
}
Then you can use
rangeEnumVariable.range
or:
rangeEnum.range0_15.range
Upvotes: 5
Reputation: 231
You might be better off trying something like this using a struct.
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"
}
Upvotes: 4