Хм.Если вы действительно имели в виду NSArray
, то массив будет пустым, в нем не будет храниться никаких элементов, следовательно, требуется лишь небольшой объем памяти, который в любом случае потребуется для любого объекта Objective C.(Точный объем памяти является деталью реализации).Но пустой NSArray
, который не может быть изменен, не очень полезен, так что, я думаю, вы имели в виду NSMutableArray
.Для NSMutableArray
массив будет изначально пустым, но он может по-прежнему выделять некоторую дополнительную память (и весьма вероятно, что так и будет), потому что Objective C ожидает, что массив будет расти, и легче добавлять новыеэлементы в массив, если уже есть какая-то память, выделенная поверх того, что строго необходимо.Точный объем выделенной дополнительной памяти также является деталью реализации.
Если вы хотите, чтобы ваш массив занимал как можно меньше памяти, вы можете использовать [[NSMutableArray alloc] initWithCapacity:x]
, где x
- максимальное числоэлементы, которые вы намереваетесь поместить в массив.Он по-прежнему будет иметь нулевой размер, но Objective C будет предполагать, что вы рано или поздно добавите к нему x
элементов, поэтому он выделяет резервное хранилище, достаточное для x
объектов.