NSArray - это контейнер указателей на другие объекты. Его максимальная емкость определяется NSUInteger (в последних версиях доступных ОС):
При создании 32-битных приложений
NSUInteger является 32-разрядным без знака
целое число. 64-битное приложение лечит
NSUInteger как 64-битный без знака
целое число
Поэтому, какой бы ни был размер NSUInteger на данном устройстве, это максимальное количество указателей объектов, которое оно может содержать. Однако, как упоминал Эймантас в своем ответе, это не то же самое, что «сколько объектов он может держать», потому что это зависит от доступной памяти. Возможно, вам не хватает оперативной памяти в данный момент для выделения массива с шестью миллиардами слотов, например ...