【发布时间】:2011-08-21 21:05:25
【问题描述】:
创建数组的时候不需要指定数组大小吧? 那么,为什么需要 arrayWithCapacity 呢? 如果我将数组的大小设置为小于实际需要的大小,可以吗?
【问题讨论】:
标签: iphone arrays nsmutablearray nsarray
创建数组的时候不需要指定数组大小吧? 那么,为什么需要 arrayWithCapacity 呢? 如果我将数组的大小设置为小于实际需要的大小,可以吗?
【问题讨论】:
标签: iphone arrays nsmutablearray nsarray
arrayWithCapacity 是一种优化——没有必要。如果您提前知道元素的数量,系统可以在一个系统调用和一块内存中分配存储。否则,系统必须稍后在您添加更多元素时调整数组的大小,这往往会很慢,需要额外的分配,并且可能需要将数据从旧缓冲区复制到新缓冲区。
【讨论】:
array 创建一个空数组(并在添加对象时分配内存),而arrayWithCapacity 创建一个分配了足够内存来保存这些对象的数组,但您可以随时在需要时扩展它。
【讨论】: