Czy istnieje sposób na uzyskanie NSMutableArray, aby umożliwić ci "dziury" w tablicy, w której tylko części tablicy są wypełniane, zamiast ciągłych elementów?Wstawianie NSMutableArrayObjects: atIndexes i indeks poza granicami
Chcę utworzyć początkową tablicę z niektórymi elementami wypełnionymi na początku tablicy. Jakiś czas później chciałbym wstawić 9 nowych elementów, nie bezpośrednio po moim aktualnym ostatnim, ale w pewnym punkcie w środku tablicy, pozostawiając dziurę w częściach listy tablic.
Myślałem, że mogę to zrobić z, ale pojawia się błąd:
NSRangeException', reason: '***
-[NSMutableArray insertObject:atIndex:]: index 28 beyond bounds [0 .. 5]'
Kod:
NSMutableArray *targetArray = [NSMutableArray arrayWithCapacity:100];
- (void)fillInInitially {
// Add the first set of elements to the beginning of the array
for (int i = 0; i < [initialData count]; ++i)
{
[targetArray insertObject:[initialData objectAtIndex:i] atIndex:i];
}
}
- (void)fillInTheBlank:(NSArray *) additions {
// Start adding at index position 28 and current array has 5 items
NSRange range = NSMakeRange(28, [additions count]);
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:range];
// Can't do this when I'm trying to add 9 new items at index 28
// because of the error: index 28 beyond bounds [0 .. 5]
[targetArray insertObjects:additions atIndexes:indexSet];
}
Nie chciałem, aby wstawić „Blank” elementów w otworach Od tego będzie zajmuj pamięć, kiedy mogę pomieścić kilkaset obiektów w tablicy.
Potrzebuję jakiejś "rzadkiej" struktury danych tablicy.