In einem Buch, sehe ich den Code:In Objective-C, wenn addObjectAtIndex aufgerufen wird, um das Array zu erstellen, muss initWithCapacity aufgerufen werden?
words = [[NSMutableArray alloc] initWithCapacity:[masterWordList count]];
und lassen Sie uns sagen [masterWordList count]
15. und dann baute der Code das Array, indem Sie eine Schleife für 10-mal mit:
[words addObject:[masterWordList objectAtIndex:randomNum]];
Ich frage mich, Warum muss words
initWithCapacity
... und 15 Slots sein? Kann es nicht 10 oder 11 sein (wenn ein Nil am Ende benötigt wird ... und auch, wird nicht addObject
automatisch die Array-Größe wachsen? Ich habe versucht mit init
anstelle von initWithCapacity
und der Code funktioniert auch. So kann der Code in dem Buch nur init
?
Genau. Ich würde empfehlen, "-init" zu verwenden, es sei denn, das Profilieren zeigt, dass das Einfügen von Objekten viel Zeit in Anspruch nimmt.(Dies ist nicht rein theoretisch - ich musste '-initWithCapacity:' aus Gründen der Geschwindigkeit ... einmal verwenden.) – andyvn22