作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想从数组中选择一些对象。因此,我正在使用我选择的开始和结束索引。
NSLog(@"start:%d\nend:%d", startIndex, endIndex);
NSIndexSet *myIndexes = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(startIndex, endIndex)];
NSLog(@"%d", [myIndexes lastIndex]);
第一个 NSLog 给我
startIndex:49
endIndex:67
第二个 NSLog 给我
115
为什么我的最高数字是 115?它应该是 67。应用程序当然会崩溃:
Terminating app due to uncaught exception 'NSRangeException', reason: '* -[NSArray objectsAtIndexes:]: index 115 beyond bounds [0 .. 96]'
我做错了什么?
最佳答案
NSRange
的成员是location
和length
,不是start
和end
。这意味着您需要像这样创建您的 NSRange
结构:
NSMakeRange(startIndex, endIndex - startIndex);
关于iphone - indexSetWithIndexesInRange 没有按预期进行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4018499/
我想从数组中选择一些对象。因此,我正在使用我选择的开始和结束索引。 NSLog(@"start:%d\nend:%d", startIndex, endIndex); NSIndexSet *myIn
我是一名优秀的程序员,十分优秀!