本文主要是介绍【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>12345NSRange range2 = NSMakeRange(3, 5);<span style="white-space:pre"> </span>34567NSRange unionRange = NSUnionRange(range1, range2);<span style="white-space:pre"> </span>1234567NSRange intersectionRange = NSIntersectionRange(range1, range2);<span style="white-space:pre"> </span>345NSString *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
这篇关于【Foundation-62-1】#import Foundation/NSRange.h范围的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!