是否可以在NSMakeRange中执行负位置?
NSString *string = @"abc";
NSString *myString = [string substringWithRange:NSMakeRange(-1, 1)];
答案 0 :(得分:9)
没有
location
和length
为unsigned 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);