[NSMutableArray array]与[[NSMutableArray alloc] init]

初始化一个NSMutableArray时,可以使用[NSMutableArray array][[NSMutableArray alloc] init]或者[NSMutableArray new]等。
使用[[NSMutableArray alloc] init]或者[NSMutableArray new]进行初始化时,都会自己生成并持有对象。当不再需要这个对象时,需要自己释放这个对象调用release
而使用[NSMutableArray array]初始化方法时,可以取得对象,但这个对象不是自己生成的也不 大专栏  [NSMutableArray array]与[[NSMutableArray alloc] init]持有。如果需要持有,需要调用retain。实际上,调用[NSMutableArray array]相当于

id array = [[NSMutableArray alloc] init];
[array autorelease];

这样可以取得对象,但并不持有。所以我们也不需要考虑在不需要这个对象时调用release来释放对象。因为autorelease的效果,对象在超出指定的生存范围时能够自动并正确地释放。

在使用ARC时,两者没有什么差别。

猜你喜欢

转载自www.cnblogs.com/liuzhongrong/p/12365279.html