可能重复:
Difference between [NSMutableArray array] vs [[NSMutableArray alloc] init]
NSMutableArray* test = [NSMutableArray array];
NSMutableArray* test1 =[[NSMutableArray alloc]init];
有什么区别?
答案 0 :(得分:3)
您不需要释放test
(因为您没有分配它),但您需要释放test1
(当您分配它时)(假设不涉及ARC)。< / p>
方法[NSMutableArray array]
已经返回autorelease
ed数组。
答案 1 :(得分:0)
test
已自动释放。这意味着它已被添加到当前自动释放池中,并且当池耗尽时(通常,当前运行循环结束时),它将被发送一个释放消息。如果没有其他人发送保留,则可以在此时释放内存。
test1
不是,并且有效保留计数为+1。你有责任释放,否则你会泄漏记忆。
答案 2 :(得分:0)
第一个是NSMUtableArray
类的静态方法,它返回一个初始化和自动重新排列的数组。
在第二个语句中,您手动分配和初始化
答案 3 :(得分:0)
两个陈述之间的关系:
[NSMutableArray array] equivalent to [[[NSMutableArray alloc] init] autorelease];