Максимальная сумма объектов в NSArray

Какова самая большая сумма объектов, я могу вставить свой NSArray?

7
задан Joshua Nozzi 28 January 2010 в 15:43
поделиться

5 ответов

Метод NSArray initWithCapacity принимает в качестве аргумента неподписанный int. Таким образом, каким бы ни было максимальное значение беззнакового int на вашей платформе, оно может быть теоретическим пределом. Однако реальный лимит скорее зависит от объема доступной памяти.

9
ответ дан 6 December 2019 в 05:48
поделиться

Nsarray - это контейнер указателей на другие объекты. Его максимальная мощность определяется Nsuinteger (на последних версиях имеющихся OSS):

при создании 32-битных приложений, Nsuinteger - 32-битный беззнаков Целое число. 64-битное удовольствие приложений Nsuinteger как 64-битный беззнаков Поэтому целое число

Следовательно, какой размер Nsuinteger находится на данном устройстве, является максимальным количеством указателей объектов, которые он может содержать. Однако, когда Eimantas намекал в своем ответе, это не совпадает с «сколько объектов может удерживать», потому что это зависит от доступной памяти. У вас может не быть достаточно, доступна в данный момент, чтобы выделить массив с шестью миллиардами слотов, например ...

1
ответ дан 6 December 2019 в 05:48
поделиться

Вы пытались узнать? ;)

NSMutableArray * a = [[NSMutableArray alloc] init];
NSUInteger i = 0;
@try {
  while (1) {
     [a addObject:@"hi"];
     i++;
  }
} @catch (NSException * e) {
  NSLog(@"added %llu elements", i);
}
11
ответ дан 6 December 2019 в 05:48
поделиться

, вероятно, больше, чем ваша оперативная память.

3
ответ дан 6 December 2019 в 05:48
поделиться

В большинстве случаев это касается верхних границ структур программирования и тому подобного:
"Если вам нужно спросить, вы, вероятно, делаете это неправильно" - TheDailyWTF.com

.
5
ответ дан 6 December 2019 в 05:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: