出于某种原因,今天这让我很困惑。
我有一个 NSString,正在尝试使用 -rangeOfString:options:range:
进行搜索,但我不断收到此异常。我在做什么:
我正在搜索字符串,试图在某个字符索引之后找到下一个换行符(因此,给定索引i
,找到下一个出现的@"\n"
之后)。我有 i
,现在我正在像这样搜索下一个换行符(这是在 NSTextView
子类中)
NSRange untilReturn = [wholeString rangeOfString:@"\n" options:kNilOptions range:NSMakeRange(startLocation, [wholeString length] - 1)];
其中 wholeText
是 textView 的整个文本,startLocation
是 i
。
但是当我运行这个时,我遇到了越界异常,而且我似乎无法弄清楚出了什么问题。有人可以帮忙吗?
最佳答案
NSMakeRange
的第二个参数是长度(来自第一个参数)。除非 startLocation
始终为 0(我认为不是),否则您的长度将会太长。您实际上希望第二个参数为[wholeString length] - startLocation
)。
关于cocoa - NSString 范围或索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12844638/