Как вы получаете размер NSArray
и печатаете его в консоли с помощью NSLog
?
Размер NSArray
Ответ 1
int size = [array count];
NSLog(@"there are %d objects in the array", size);
Ответ 2
Ответ на другой ответ:
Вы не можете получить размер массива в мегабайтах, по крайней мере, не без какого-либо сложного, неподдерживаемого * V voooo. NSArray
- кластер классов, что означает, что мы не знаем, как он реализован внутри. В самом деле, используемая реализация может изменять в зависимости от количества элементов в массиве. Более того, размер массива не пересекается с размером объектов, на которые ссылается массив, поскольку эти объекты находятся в другом месте в куче. Даже структура, содержащая указатели объектов, не является технически "частью" массива, поскольку она не обязательно calloc
'd прямо рядом с фактическим NSArray
в куче.
Если вам нужен размер самой структуры массива, ну, по-видимому, всего 4 байта:
NSLog(@"Size: %d", sizeof(NSArray));
Печать
2010-03-24 20:08:33.334 EmptyFoundation[90062:a0f] Size: 4
(Конечно, это не приличное представление, так как NSArray
, вероятно, просто абстрактный интерфейс для другого типа объекта, обычно что-то вроде NSCFArray
. Если вы посмотрите в NSArray.h
, вы увидите, что NSArray
не имеет переменных экземпляра. Довольно странно для чего-то, что должно содержать другие объекты, а??)
*
Под "unsupported" я имею в виду "не рекомендуется", "вникая во внутреннюю мистику кластеров классов" и "недокументированный и закрытый API, если он существует"
Ответ 3
Размер можно определить, отправив "счет" в экземпляр NSArray, а печать на консоль может быть выполнена через NSLog(), например:
NSArray * array = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
NSLog(@"array size is %d", [array count]);
Ответ 4
Взгляните на этот пост для вопроса о размере массива
Используйте NSLog для записи на консоль...
NSLog(@"The array size is %@", arraySize);
Ответ 5
В Swift 4
пусть a = [ "a", "b" ]
a.count//2