天天看点

NSMutableArray的初始化

记得之前一直用这个方法对可变数组进行初始化

NSMutableArray *array = [NSMutableArray alloc] init];
 //大神说:这并不是一个好方法
           

有人跟我说用obj-c提供了静态方法 +(id)arrayWithCapacity:size 来创建一个可变数组。查Dash后发现,这个size数组容量只是数组最终大小的一个参考。size的值是为 Cocoa能够对代码进行一些优化,这个值不会用来限制数组的大小。

所以我们可以这样创建可变数组:

//创建一个可变的数组长度为8  ---不用担心会有限制
 NSMutableArray *array = [NSMutableArray arrayWithCapacity:];  
           

你觉得这样就行了么??

哈哈,再补充一点东西 ··

在Google的时候发现还有一些有用的知识,

问题:

  • NSMutableArray中arraywithcapacity 和 initwithcapacity的区别?在使用NSMutableArray时,初始化数组有这两个方法,它们有什么本质区别吗?是不是都是autorelease的吗?
  • 回答
    • arrayWithCapacity是类autorelease的,而[NSMutableArray alloc]initWithCapacity需要自己release