NSMutableArray alloc init与NSMutableArray array的区别

5

什么是以下两者之间的区别:

[[NSMutableArray alloc] init]

并且

[NSMutableArray array]

5
可能是 [NSMutableArray array] 和 [[NSMutableArray alloc] init] 之间的重复问题。 - kennytm
4个回答

12

[NSMutableArray array]中,你不需要手动释放array,它会自动释放。而如果你使用[NSMutableArray alloc] init],则需要手动释放array,所以[[NSMutableArray array]相当于 [[[NSArray alloc] init] autorelease];


我将代码修改为:ImageList = [[[NSMutableArray alloc] init] autorelease]; 但是它没有起作用。可能出现了什么错误? - susitha

1

第一个保留在内存中,直到您释放它;第二个则持续到运行循环迭代结束。


1

NSMutableArray 不需要释放内存,而 [NSMutableArray alloc] init] 必须释放。


0

当ARC起作用时,你需要释放来自包括init、alloc、new、copy和mutableCopy等方法的对象,比如[NSMutableArray alloc] init]。如果没有释放,这些对象会被注册到自动释放池中,比如[NSMutableArray array]。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接