Ceci est ma méthode init:La méthode de comptage NSMutableArray indique que NSMutableArray est le nombre 0?
-(id)init{
self = [super init];
magicNumber = 8;
myMagicArray = [[NSMutableArray alloc] initWithCapacity:(magicNumber*magicNumber)];
NSLog(@"this is the magic Array: %d", [myMagicArray count]);
return self;
}
C'est le .h:
@interface Magic : NSObject {
NSMutableArray *myMagicArray;
int magicNumber;
}
La console me montre ce nombre est égal à 0. au lieu de 64, en poids de se produire? Je vérifie déjà ce post:
Alors, comment puis-je obtenir le numéro de capacité? Je veux dire, le 64 ... dans ce cas .... – Tattat
Je veux remplir le NSMutableArray ... ... – Tattat
Vous n'avez pas besoin de la capacité. C'est une optimisation, et en fonction de la capacité que vous spécifiez et de l'algorithme interne choisi par NSArray, vous risquez d'être ignoré. Ajoutez simplement les objets quand vous les obtenez, en utilisant -addObject: ou -insertObject :. Différent d'un CFArray, la capacité d'un NSArray n'est pas une limite stricte. C'est juste une suggestion. Si vous obtenez vos objets dans un ordre aléatoire (mais avec un numéro d'index), vous pouvez créer un tableau et le remplir avec des objets [NSNull null] en utilisant -addObject: puis remplacer le NSNull par l'objet réel . Mais ce dernier est rarement nécessaire. – uliwitness