这是一个非常奇怪的错误,我得到了。就是这样:
'NSRangeException', reason: '*** -[NSArray subarrayWithRange:]: range {2, 3} extends beyond bounds [0 .. 3]'
我不明白的是范围(2,3)明显不超出范围界限(0,3)
事实上,它在这些范围内,因为我设置了数组和范围,如下所示:
NSRange range = NSMakeRange([wordArray indexOfObject:letterInWordArray]+1,wordArray.count-1);
NSMutableArray* sortedSubArray = [[NSMutableArray alloc] initWithArray:[wordArray subarrayWithRange:range]];
基本上我正在迭代一个名为wordArray的数组,我想创建一个子数组,它是我尚未迭代的所有项目。任何人都可以帮助我吗?
答案 0 :(得分:3)
我不明白的是范围(2,3)显然不会超出范围(0,3)的范围
确实如此:NSRange
的第二个元素是其长度,因此(2, 3)
包含索引2
,3
和4
。
因此,如果[wordArray indexOfObject:letterInWordArray]
返回的值大于零,则返回的范围将超出相应数组的限制。
要解决此问题,请先将[wordArray indexOfObject:letterInWordArray]
指定给变量,然后从总长度中减去该数字。这将为您提供从匹配位置到数组末尾的范围。