//一、NSRange是一个结构体,表示一段范围
/*
typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
*/
//NSUInteger是一个自定义无符号长整型typedef unsigned long NSUInteger;
//location表示起始位置
//length表示长度
/*二、创建方式:大致有四种
1.{location,length} NSRange range={2,4};
2.NSMakeRange(location,length)
3.先定义,然后range.location,range.length
4. NSRange range3={.location=2,.length=4};
*/
三、代码分析
#import <Foundation/Foundation.h>
int main(){
@autoreleasepool {
NSRange range={2,4};//第一种方式
NSLog(@"%@",NSStringFromRange(range));
NSRange range1= NSMakeRange(2,4);//第二种方式
NSLog(@"%@",NSStringFromRange(range1));
NSRange range2;//第三种方式
range2.location=2;
range2.length=4;
NSLog(@"%@",NSStringFromRange(range2));
NSRange range3={.location=2,.length=4};//第四种方式
NSLog(@"%@",NSStringFromRange(range3));
NSString *str=@"i am the best best";
NSString *str1=@"best";
NSRange range4= [strrangeOfString:str1];//查找某一串字符是否存在于另一个字符串中
NSLog(@"loc=%lu,len=%lu",range4.location,range4.length);
if (range.location==NSNotFound) {//如果没有查找到字符串,则结果是NSNotFound
NSLog(@"不存在");
}
NSRange range5= [strrangeOfString:str1options: NSBackwardsSearch];//实现反向查找
NSLog(@"loc=%lu,len=%lu",range5.location,range5.length);
}
return0;
}
//结果打印如下
/*
2016-01-27 23:57:00.274 OC 5[2076:113487] {2, 4}
2016-01-27 23:57:00.276 OC 5[2076:113487] {2, 4}
2016-01-27 23:57:00.276 OC 5[2076:113487] {2, 4}
2016-01-27 23:57:00.276 OC 5[2076:113487] {2, 4}
2016-01-27 23:57:00.276 OC 5[2076:113487] loc=9,len=4
2016-01-27 23:57:00.276 OC 5[2076:113487] loc=14,len=4
Program ended with exit code: 0 */