【Foundation-62-1】#import <Foundation/NSRange.h>范围


// NSRange 的结构体

typedef struct _NSRange {

   NSUInteger location;

   NSUInteger length;

} NSRange;

    NSRange theRange = NSMakeRange(2, 4);
    NSUInteger loc = theRange.location; // 起始位置
    NSUInteger len = theRange.length;   // 长度
    
    


// NSRange 的指针  啥用子类?没用过,求告知

typedefNSRange *NSRangePointer;

????



// 创建 NSRange

NS_INLINENSRange NSMakeRange(NSUInteger loc,NSUInteger len) {

   NSRange r;

    r.location = loc;

    r.length = len;

   return r;

}

    NSRange theRange = NSMakeRange(2, 4);


// 最大值

NS_INLINENSUInteger NSMaxRange(NSRange range) {

   return (range.location + range.length);

}

    NSRange theRange = NSMakeRange(2, 4);
    NSUInteger six = NSMaxRange(theRange);<span style="white-space:pre">	</span>


// 判断位置是否在 范围内

NS_INLINEBOOL NSLocationInRange(NSUInteger loc,NSRange range) {

   return (!(loc < range.location) && (loc - range.location) < range.length) ?YES : NO;

}

    if (NSLocationInRange(3, NSMakeRange(1, 4))) {
        NSLog(@"yes");
    }


// 判断2个范围是否完全一致

NS_INLINEBOOL NSEqualRanges(NSRange range1,NSRange range2) {

   return (range1.location == range2.location && range1.length == range2.length);

}

    if (NSEqualRanges(NSMakeRange(1, 2), NSMakeRange(2, 3))) {
        NSLog(@"yes");
    }


FOUNDATION_EXPORTNSRange NSUnionRange(NSRange range1,NSRange range2);// 并集

FOUNDATION_EXPORTNSRange NSIntersectionRange(NSRange range1,NSRange range2);// 交集

FOUNDATION_EXPORTNSString *NSStringFromRange(NSRange range);// 范围转字符串

FOUNDATION_EXPORTNSRange NSRangeFromString(NSString *aString);// 字符串转范围


    NSRange range1 = NSMakeRange(1, 5);<span style="white-space:pre">			</span>12345
    NSRange range2 = NSMakeRange(3, 5);<span style="white-space:pre">			</span>34567
    
    NSRange unionRange = NSUnionRange(range1, range2);<span style="white-space:pre">			</span>1234567
    NSRange intersectionRange = NSIntersectionRange(range1, range2);<span style="white-space:pre">	</span>345
    
    NSString *rangeStr = NSStringFromRange(range1);<span style="white-space:pre">			</span>{1,5}
    NSLog(@"%@",rangeStr);
    
    NSRange strRange = NSRangeFromString(@"{1,4}");
    
    



@interface NSValue (NSValueRangeExtensions)


+ (NSValue *)valueWithRange:(NSRange)range;// 通过范围创建NSValue

@property (readonly)NSRange rangeValue;


@end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值