NSMutableArray initwithcapacity значение всегда приходит "0" - PullRequest
0 голосов
/ 08 декабря 2011

Мой код следующий:

int totalBarCount = 12;
NSMutableArray *tmpValue = [[NSMutableArray alloc]initWithCapacity:totalBarCount];
[tmpValue addObject:[NSNumber numberWithFloat:tmpToplam]];

NSLog (@"%f",[tmpValue count]);

[tmpValue count] всегда возвращает 0. Почему?Как я могу получить 12?

Ответы [ 2 ]

5 голосов
/ 08 декабря 2011

Попробуйте:

NSLog (@"%d", [tmpValue count]);

Это даст вам количество элементов в массиве, равное 1.

Вы не получите 12 из -count;12 - это емкость массива, т. Е. Объем, который он мог бы потенциально удержать перед тем, как перераспределить его хранилище.

Вы получаете 0 прямо сейчас, потому что %f - это спецификатор формата для значения с плавающей запятой.Тем не менее, вы передаете целое число.Из-за того, как работает архитектура, значения с плавающей точкой передаются не так, как целые числа, поэтому спецификатор формата %f вызывает чтение первого элемента в стеке с плавающей точкой.В вашем случае это просто 0.

3 голосов
/ 08 декабря 2011

Отправка -count в экземпляр NSArray (или в этом случае NSMutableArray) не дает емкости массива, она фактически возвращает количество объектов в коллекции.Вы можете получить -count, вернув 12, поместив в массив 12 объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...