什么是以下两者之间的区别:
[[NSMutableArray alloc] init]
并且
[NSMutableArray array]
什么是以下两者之间的区别:
[[NSMutableArray alloc] init]
并且
[NSMutableArray array]
在[NSMutableArray array]
中,你不需要手动释放array
,它会自动释放。而如果你使用[NSMutableArray alloc] init]
,则需要手动释放array
,所以[[NSMutableArray array]
相当于 [[[NSArray alloc] init] autorelease];
第一个保留在内存中,直到您释放它;第二个则持续到运行循环迭代结束。
NSMutableArray
不需要释放内存,而 [NSMutableArray alloc] init]
必须释放。
当ARC起作用时,你需要释放来自包括init、alloc、new、copy和mutableCopy等方法的对象,比如[NSMutableArray alloc] init]。如果没有释放,这些对象会被注册到自动释放池中,比如[NSMutableArray array]。