¿Hay alguna manera de obtener NSMutableArray para que tenga "agujeros" dentro de la matriz donde solo se llenan partes de la matriz en lugar de tener elementos contiguos?NSMutableArray's insertObjects: atIndexes and index beyond bounds
Quiero crear la matriz inicial con algunos elementos rellenos al comienzo de la matriz. Algún tiempo después, me gustaría insertar 9 elementos nuevos, no inmediatamente después de mi último actual, sino en algún punto en el medio de la matriz, dejando un agujero en algunas partes de la lista de arreglos.
pensé que podía hacer esto con, pero me sale el error:
NSRangeException', reason: '***
-[NSMutableArray insertObject:atIndex:]: index 28 beyond bounds [0 .. 5]'
Código:
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];
}
que no quería para insertar elementos "en blanco" en los agujeros ya que ello tomar memoria cuando puedo contener varios cientos de objetos en la matriz.
Necesito algún tipo de estructura de datos de matriz "dispersa".