是否可以在NSMakeRange中执行负位置?

时间:2012-02-21 10:28:55

标签: ios nsrange

是否可以在NSMakeRange中执行负位置?

NSString *string = @"abc";
NSString *myString = [string substringWithRange:NSMakeRange(-1, 1)];

2 个答案:

答案 0 :(得分:9)

没有

locationlengthunsigned integers

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

此外,NSMakeRange函数为defined,如下所示:

NSRange NSMakeRange (
    NSUInteger loc,
    NSUInteger len
);

答案 1 :(得分:-1)

是的,这是可能的,但实际上没有任何意义,因为负值将转化为另一个非常大的正值。

NSUInteger loc = -1; // equal to 4294967295

1.所以,你需要一根很长的绳子 因此,你需要将你的负值反转为巨大的价值才能让你的榜样得以实现

NSString *string = @"abc";
NSRange r1 = NSMakeRange(-NSUIntegerMax, 1);
NSString *myString = [string substringWithRange:r1];
NSLog(@"%@",myString);