gpt4 book ai didi

objective-c - 使用 range 创建子数组时抛出 NSRangeException

转载 作者:行者123 更新时间:2023-12-03 06:14:52 25 4
gpt4 key购买 nike

这是我遇到的一个非常奇怪的错误。是这样的:

'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 的数组,并且我想创建一个子数组,其中包含我尚未迭代的所有项目。有人可以帮我吗?

最佳答案

What I don't understand is that the range (2,3) clearly doesn't extent beyond the bounds of range (0,3)

确实如此:NSRange 的第二个元素是其长度,因此 (2, 3) 包括索引 2, 3 4

因此,如果 [wordArray indexOfObject:letterInWordArray] 返回大于零的值,则返回的范围将超出相应数组的限制。

要解决此问题,请先将 [wordArray indexOfObject:letterInWordArray] 分配给变量,然后从总长度中减去该数字。这将为您提供从匹配位置延伸到数组末尾的范围。

关于objective-c - 使用 range 创建子数组时抛出 NSRangeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24845993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com