#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
добавляет объект в конце, поэтому смещения не происходит