OC NSRange用法

NSRange的定义

typedef struct _NSRange {
    NSUInteger location;
    NSUInteger length;
} NSRange;

从源码中我们可以看到,NSRange是一个结构题,其中location是一个以0为开始的index,length是表示对象的长度;

NSRange用来表示事务的一个范围,通常是字符串里的自负范围或数组里面的元素范围,NSRange有两个成员;

location 表示范围的起始位置;

length 表示该范围的长度;

NSRange的创建

 //通过结构体变量来访问成员
    NSRange a;
    a.location=1;
    a.length=2;
    
    //结构体变量整体赋值
    NSRange b={2,3};

    NSRange c={.location=3,.length=4};
    /**
     通过NSMakeRange结构体变量整体赋值
     NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
     NSRange r;
     r.location = loc;
     r.length = len;
     return r;
     }
     */
    NSRange d=NSMakeRange(0,2);

实例:查询字符串"that girl"中的"girl"的起点和长度;

NSString *str=@"that girl";
    NSRange loveRange=[str rangeOfString:@"girl"];
    NSLog(@"%d_%d",loveRange.location,loveRange.length);