1、
NSRange的定义
typedef struct _NSRange
{
NSUInteger location;
NSUInteger length;
} NSRange;
NSRange
是一个结构体,其中
location
是一个以
0
为开始的
index
,
length
是表示对象的长度。他们都是
NSUInteger
类型。
而
NSUInteger
类型的定义如下:
#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedef unsigned long NSUInteger;
#else
typedef unsigned int NSUInteger;
#endif
2、NSRange(location,length) 表示范围,从位置(location)开始长度(length)内的元素,主要用于查找字符串在字符串中所属范围。
location 在字符串中的位置,从0开始。如果未找到需要查找的字符串,location值为-1。
length 查找字符串的
长度。
如果未找到需要查找的字符串,length值为0。
@"i love oyou" // love的范围
NSRange r3 = NSMakeRange(2, 4);
查找某个字符串在str中的范围
NSString *str = @"i love you";
// 如果找不到,length=0,location=NSNotFound==-1
NSRange range = [str rangeOfString:@"java"];
NSLog(@"loc = %ld, length=%ld", range.location, range.length);
// 如果找不到,length=0,location=NSNotFound==-1
NSRange range = [str rangeOfString:@"java"];
NSLog(@"loc = %ld, length=%ld", range.location, range.length);