Вам не нужно вместимость. Это оптимизация, и в зависимости от того, какую большую емкость вы укажете и какой внутренний алгоритм NSArray
выбирает, на самом деле можно игнорировать. Просто добавьте объекты, когда вы их получите, используя - addObject:
или - insertObject:
. В отличие от CFArray
, емкость NSArray
не является жестким пределом. Это всего лишь предложение.
Если вы получаете ваши объекты в случайном порядке (но с порядковым номером), вы можете создать массив и заполнить его с [NSNull null]
объектов с помощью - addObject:
, а затем заменить NSNull
с реальным объектом, как вы его получите. Но последнее редко бывает необходимо.
Примечание:
The - initWithCapacity:
метод создает пустой массив с намеком, как большой массив может достигать до перераспределения памяти. Счет увеличивается, когда вы на самом деле -addObject
: к массиву.
'NSMutableArray' не имеет начального фиксированного размера. Он растет, когда вы добавляете элементы. Думаю, что 'capacity' в' initWithCapacity: 'просто подсказка для производительности. См. Документы: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/#//apple_ref/occ/instm/NSMutableArray/initWithCapacity: –
Хм ... Мне интересно почему вам нужна способность NSMutaleArray? Это похоже на проблему XY. – kukushi
Если у вас есть slideValue, который вы задали как емкость, то почему вам нужно то же самое от массива? вы можете использовать slideValue, который вы уже присвоили массиву. – Vickyexpert