NSMutableArray removeObjectAtIndex

#objective-c #cocoa #ios4 #nsmutablearray

#objective-c #cocoa #ios4 #nsmutablearray

Вопрос:

Если у меня есть NSMutableArray с 10 объектами

Я запускаю эту строку кода

 [tempArray removeObjectAtIndex:0];
  

затем

[tempArray count] должно возвращать 9

но сдвигается ли весь массив вверх

Объект с индексом 1 перемещается в индекс 0
Объект с индексом 2 перемещается в индекс 1

Объект с индексом 9 перемещается в индекс 8

или индекс 0 = nil?

Ответ №1:

Из документации по NSMutableArray:

Чтобы заполнить пробел, все элементы за пределами индекса перемещаются путем вычитания 1 из их индекса.

Комментарии:

1. верно, но это делается iOS или нам нужно вручную создать метод для этого? (Извините за глупый вопрос).

Ответ №2:

Массив сдвинет все объекты вниз на 1 справа от удаленного индекса. Индекс 0 будет таким, какой был в индексе 1 и так далее.

Ответ №3:

removeObjectAtIndex сдвигает индексы вниз

insertObjectAtIndex сдвигает индексацию вверх

addObject добавляет объект в конце, поэтому смещения не происходит