2014-02-11 110 views
-4

我是Obejtive C的新手,所以我在当时看了很多示例代码,我发现人们初始化他们的NSMutableArray的方式不同。用数组或初始化初始化一个NSMutableArray初始化

NSMutableArray *items = [NSMutableArray array]; 

NSMutableArray *items = [[NSMutableArray alloc] init]; 

在你结束了一个NSMutableArray对象都行。
他们之间有什么不同或者他们完全一样吗?

+0

第一个是工厂方法,它返回一个nsmutablearray的实例。在第二个你给予记忆并保持它的数量为1。 – Pawan

回答

6

这些之间的主要区别是,如果你不使用ARC(自动引用计数)。第一个返回一个保留和自动释放的对象。第二个返回仅保留的对象。因此,在第一种情况下,如果您想保留它比当前运行循环更长时间,则需要保留它。在第二种情况下,如果您不想保留它,您会想要释放或自动释放它。

既然我们有ARC,这就改变了事情。基本上,在ARC代码中,你使用哪一个并不重要。