NSRange给出了荒谬的位置

时间:2012-09-25 23:27:28

标签: ios nsstring

我遇到了这种奇怪的效果,在rangeOfString上调用location时,它应该返回一个非常大的值...

我的代码如下:

NSRange range = [string rangeOfString:subString];
NSLog(@"range is %@", NSStringFromRange(range));

注销range is {2147483647, 0}

无法弄明白为什么。

可能导致此问题的一些事情:

  • 子字符串是使用NSString从字节数组生成的 initWithBytes方法
  • 子字符串告诉我它是一个NSCFString *,但也说'变量是 不是NSString'
  • 子串在控制台中按预期记录

任何帮助非常感谢

这里有一些让我感到奇怪的东西:

enter image description here

1 个答案:

答案 0 :(得分:6)

这只是意味着你的字符串不存在于你的字符串中,请执行以下操作来验证这一点:

NSRange range = [string rangeOfString:subString];
if (range.location == NSNotFound) {
  NSLog(@"String not found");
} else {
  NSLog(@"range is %@", NSStringFromRange(range));
}