Это из-за этой строки:
[latestArrayForMonth insertObject:[numberOfdaysInAMonth objectAtIndex:i] atIndex:1];
Поскольку вы вставляете элемент atIndex:1
непрерывно, так как переменная 'i' увеличивается в цикле, так же как и количество элементов вмассив - таким образом, регистрация элемента в индексе 'i' всегда является одним и тем же элементом.
Пожалуйста, также проверьте, что вставка объекта в индекс 1 - это то, что вы хотите сделать - Objective-C - это ноль-индексированный язык, означающий, что первый элемент в массиве имеет индекс 0.
Возможно, вы захотите удалить все объекты в массиве latestArrayForMonth
и просто использовать метод addObject
(или использовать addObjectsFromArray
чтобы быстро добавить все элементы из массива).
Также может быть полезно изучить альтернативные подходы к созданию массива, заполненного «пустыми» значениями - я еще никогда не видел варианта использования для этого подхода, лучшеиметь пустой массив, чем массив, заполненный «пустыми» значениями.
Еще одна вещь, на которую следует обратить внимание: поскольку вы просто храните примитивные целочисленные значения, вы можете найти NSIndexSet более подходящим для использования.чем NSArray (зависит от применения размещенного кода, но заслуживает расследования).