2010-10-25 67 views
5

我想从数组中选择一些对象。因此我使用我选择的开始和结束索引。indexSetWithIndexesInRange没有做什么预期

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作为最高号码?它应该是67。当然,应用程序崩溃:

终止应用程序由于未捕获的异常 'NSRangeException',原因:“* - [NSArray的objectsAtIndexes:]:索引115超出范围[0 .. 96] '

我做错了什么?

回答

16

NSRange的成员是locationlength,不startend。这意味着您需要创建NSRange这样的结构:

NSMakeRange(startIndex, endIndex - startIndex); 
+0

这节省了我大量的时间和精力! – user3687 2015-07-27 16:15:09

相关问题