在一本書裏,我看到代碼:在Objective-C中,如果調用addObjectAtIndex來構建數組,那麼是否需要調用initWithCapacity?
words = [[NSMutableArray alloc] initWithCapacity:[masterWordList count]];
,讓我們說[masterWordList count]
是15.然後將代碼構建陣列起來使用循環10次:
[words addObject:[masterWordList objectAtIndex:randomNum]];
我不知道爲什麼words
必須是initWithCapacity
...以及15個插槽?它不能是10或11(如果最後需要零...而且addObject
不會自動增長數組大小嗎?我試過使用init
而不是initWithCapacity
並且代碼也能工作。在這本書中被簡化爲init
?
正是如此。我建議你使用'-init',除非分析表明插入對象需要花費很多時間。(這不是純粹的理論 - 我不得不使用'-initWithCapacity:'出於速度的原因......一次。) – andyvn22 2012-04-15 21:07:44