定义
NSRange在官方文档中如是定义:A structure used to describe a portion of a series—such as characters in a string or objects in an NSArray object.
即用来描述字符串中一部分字符或者NSArray中的一部分对象
NSRange的定义
typedef struct _NSRange
{
NSUInteger location;
NSUInteger length;
} NSRange;
NSRange是一个结构体,其中location是一个以0为开始的index,length是表示对象的长度。他们都是NSUInteger类型。
用法:
int main(int argc, const char * argv[]) {
NSString *string = @"i love using Xcode!";
//NSRange r = NSMakeRange(2, 3);
//查找某个字符串在string中的范围
NSRange r1 = [string rangeOfString:@"Xcode"];
//打印给定范围的子串
NSLog(@"%@",[string substringWithRange:r1]);
//打印搜索到的子串的范围
NSLog(@"loc:%ld, length:%ld",r1.location,r1.length);
//NSRange转换成NSString
NSLog(@"Range is: %@", NSStringFromRange(r1));
//如果找不到,length = 0,location == -1 == NSNotFound,(9223372036854775807)
NSRange r2 = [string rangeOfString:@"objective"];
NSLog(@"%d",NSNotFound);
NSLog(@"%d",(int)r2.location);
//NSString 转换成NSRange
NSRange r3=NSRangeFromString(@"{3, 3}");
NSLog(@"r3 is:%@",NSStringFromRange(r3));
return 0;
}