记得之前一直用这个方法对可变数组进行初始化
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