这是我的初始化方法:
-(id)init{
self = [super init];
magicNumber = 8;
myMagicArray = [[NSMutableArray alloc] initWithCapacity:(magicNumber*magicNumber)];
NSLog(@"this is the magic Array: %d", [myMagicArray count]);
return self;
}
这是.h:
@interface Magic : NSObject {
NSMutableArray *myMagicArray;
int magicNumber;
}
控制台显示数字是 0。不是 64,发生了什么?我已经查看了这篇文章:
最佳答案
您混淆了容量和计数。容量只是为数组预留的内存空间,所以当数组扩展时不需要花时间分配内存。
计数是存储在数组中的实际项目数。
-initWithCapacity:
方法创建一个空 数组,并提示该数组在重新分配内存之前可以达到多大。当您实际 -addObject:
到数组时,计数会增加。
,———.———.———.———————————————————————————————————.
| 4 | 6 | 8 | <—— room for array to expand ———> |
'———'———'———' |
| count = 3 |
| |
'——— memory reserved (capacity) of the array ———'
> 3
关于objective-c - NSMutableArray 计数方法显示 NSMutableArray 计数为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2616604/