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