NSMutableArray创建使用方法和心得

  1. 如果知道一会儿要用的可变数组的大致大小建议使用initWithCapacity:n的方式,如果不知道就用init就好了,initWithCapacity:0 也许还不如init;因为有时候它会奔溃。
  2. arrayWithCapacity是类autorelease的,而[NSMutableArray alloc]initWithCapacity需要自己release。
  3. 在with capacity的情况下,在初始化的时候分配的内存为n*sizeof(elem)--假设capacity为n。如果在使用的过程中需要加入更多的元素需要给array扩容了,那么必须去找系统再次要求分配内存,而这次要求的内存的大小和扩容因子有关系,如果扩容因子为2,那么扩容之后总共分配的堆内存就成了2n*sizeof(elem)..扩容因子应该自己可以指定吧一般。
  4. init、initWithCapacity:0和initWithCapacity:10000000的结果非常接近,都是2.1~2.2秒之间。由于存在波动,结果基本上是随机的,所以我倾向于选择最短的写法
  5. 如果你知道最大需要的容量,那么就使用initWithCapacity:来设置,好处就是当元素个数不超过容量时,添加元素不需要重新分配内存 

你可能感兴趣的:(NSMutableArray)