ios开发系列之NSRange
2015-10-09 14:21
381 查看
//NSRange的定义可以理解为从location开始的length个元素 typedef struct _NSRange { NSUInteger location; //表示对象开始的下标 NSUInteger length; //表示对象长度 } NSRange;
//创建NSRange的方法定义: NSRange NSMakeRange(NSUInteger loc, NSUInteger len) { NSRange r; r.location = loc; r.length = len; return r; //返回一个NSRange类的对象 }
//返回location和length的和,也就是该range 下对象的最大一个下标加1(或者理解为在所取数据中的第max个元素,这里索引为0的为第一个元素) NSUInteger NSMaxRange(NSRange range) { return (range.location + range.length); }
//判断所给的下标是否在range内 BOOL NSLocationInRange(NSUInteger loc, NSRange range) { return (!(loc < range.location) && (loc - range.location) < range.length) ? YES : NO; }
//判断两个range是否相等 BOOL NSEqualRanges(NSRange range1, NSRange range2) { return (range1.location == range2.location && range1.length == range2.length); }
//将2个range组合一起返回一个范围最大的NSRange对象(或者理解为 取原来2个range能取到下标最小的元素,直到原来2个range能取到下标最大的元素) NSRange NSUnionRange(NSRange range1, NSRange range2);
//将一个range ( , )转换为字符串{ , }形式 NSString *NSStringFromRange(NSRange range);
//将一个字符串转成range,这个方法会扫描字符串,找到最前面的两个数,如果只有一个数字就将这个数字作为location.没有的话 location和length都为0. NSRange NSRangeFromString(NSString *aString);
测试代码:
NSArray * array = [[NSArray alloc]initWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9", nil]; NSRange range = NSMakeRange(3, 3); NSArray * newArray = [array subarrayWithRange:range]; NSLog(@"newArray ---%@",newArray); //newArray ---(3, 4, 5) int x = NSMaxRange(range); NSLog(@"x==%d",x);//x==6 BOOL is = NSLocationInRange(6, range); NSLog(@"is====%d",is);//is====0 NSRange range2 = NSMakeRange(4,3); NSRange rangeNew = NSUnionRange(range, range2); NSArray * newArray1 = [array subarrayWithRange:rangeNew]; NSLog(@"newArray1111111_____%@",newArray1); //newArray1111111_____(3,4,5,6) NSString * str1 = NSStringFromRange(range); NSLog(@"str1====%@",str1);//str1===={3, 3}
相关文章推荐
- iOS实现手机的连续震动和停止震动的代码(拷如工程就能用)
- iOS CocoaPods的安装和使用详解
- IOS8下,百度地图无法定位解决办法,亲测可用
- 【Bug-iOS】Collection <__NSArrayM: 0x> was mutated while being enumerated.
- iOS 多线程笔记_(2)
- iOS开发有关导航条坐标问题
- iOS--字符串拼接
- iOS --时间戳
- iOS开源项目大全
- iOS 定位服务
- iOS9AdaptationTips
- 项目适配iOS9遇到的一些问题及解决办法(更新两个小问题)
- iOS获取设备版本信息
- IOS中堆和栈的区别
- iOS开发MAC下配置svn
- iOS苹果官方Demo合集
- Xcode模拟器不能选择 强制打开提示iOS Simulator 意外退出
- iOS9.0修改状态栏颜色
- Xcode中添加.pch文件
- IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等