/
NSNumber-Range.m
23 lines (18 loc) · 1.12 KB
/
NSNumber-Range.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#import "NSNumber-Range.h"
@implementation NSNumber (NGSRange)
- (BOOL)isWithinRange:(NSRange)range // location <= self <= location+length
{
// e.g. for {6,1} a value of 6.000 will return true, as will 7.000
return [self compare:[NSNumber numberWithInt:range.location]] != NSOrderedAscending && [self compare:[NSNumber numberWithInt:range.location+range.length]] != NSOrderedDescending;
}
- (BOOL)isExclusivelyWithinRange:(NSRange)range // location < self < location+length
{
// e.g. for {6,1} a value of 6.000 will return false, 6.001 will return true, 6.999 will return true, 7.000 false
return [self compare:[NSNumber numberWithInt:range.location]] == NSOrderedDescending && [self compare:[NSNumber numberWithInt:range.location+range.length]] == NSOrderedAscending;
}
- (BOOL)isBoundedByRange:(NSRange)range // location <= self < location+length
{
// e.g. for {6,1} a value of 6.000 will return true, 6.999 will return true, 7.000 will not
return [self compare:[NSNumber numberWithInt:range.location]] != NSOrderedAscending && [self compare:[NSNumber numberWithInt:range.location+range.length]] == NSOrderedAscending;
}
@end