2010-10-25 75 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

相關問題