You cannot have discontinuous indexes, so your best chance is to use a placeholder object to replace the removed one. Something like
NSMutableArray *array = [NSMutableArray arrayWithObjects:@1, @2, @3, nil];
[array replaceObjectAtIndex:0 withObject:[NSNull null]];
Now you will have
0 => [NSNull null]
1 => @2
2 => @3
so the indexing of non-null objects is preserved.