我的代码如下:
int totalBarCount = 12;
NSMutableArray *tmpValue = [[NSMutableArray alloc]initWithCapacity:totalBarCount];
[tmpValue addObject:[NSNumber numberWithFloat:tmpToplam]];
NSLog (@"%f",[tmpValue count]);
[tmpValue count]
总是返回0.为什么?我怎么能得到12?
答案 0 :(得分:5)
试试这个:
NSLog (@"%d", [tmpValue count]);
这将为您提供数组中项目的计数,即1。
你不会从-count获得12; 12是阵列的容量,即在需要重新分配其存储之前它可能保留的量。
您现在正在获得0,因为%f
是浮点值的格式说明符。但是,您传递的是整数。由于体系结构的工作方式,浮点值的传递方式与整数不同,因此%f
格式说明符会导致浮点堆栈上的第一个项被读取。在您的情况下,这恰好是0
。
答案 1 :(得分:3)
将-count
发送到NSArray
的实例(或者在这种情况下为NSMutableArray
)不会产生数组的容量,它实际上会返回集合中的对象数。您可以通过将12个对象放入数组中来-count
返回12。