[NSMutableArray array]与[[NSMutableArray alloc] init]
初始化一个NSMutableArray
时,可以使用[NSMutableArray array]
,[[NSMutableArray alloc] init]
或者[NSMutableArray new]
等。
使用[[NSMutableArray alloc] init]
或者[NSMutableArray new]
进行初始化时,都会自己生成并持有对象。当不再需要这个对象时,需要自己释放这个对象调用release
。
而使用[NSMutableArray array]
初始化方法时,可以取得对象,但这个对象不是自己生成的也不持有。如果需要持有,需要调用retain
。实际上,调用[NSMutableArray array]
相当于
id array = [[NSMutableArray alloc] init];
[array autorelease];
这样可以取得对象,但并不持有。所以我们也不需要考虑在不需要这个对象时调用release
来释放对象。因为autorelease
的效果,对象在超出指定的生存范围时能够自动并正确地释放。
在使用ARC时,两者没有什么差别。