2010-09-20 66 views
3

这些都在我的应用程序的工作没有任何明显的区别:的NSMutableArray arrayWithArray:对initWithArray:

1)

theArray = [[NSMutableArray alloc] initWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:theData]]; 

2)

theArray = [NSMutableArray arrayWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:theData]]; 
[theArray retain]; 

然而,他们真的等同? (1)有一个alloc语句,而(2)没有。一个比另一个更好吗?

回答

5

效果是一样的。但是(2)效率较低(一种方便的方法= alloc + init + autorelease)。

  1. 的alloc →初始化
  2. 的alloc → →初始化自动释放→保留

的首选方法是不向阵列复制。

theArray = [[NSKeyedUnarchiver unarchiveObjectWithData:theData] retain]; 

顺便说一句,我注意到你一直在问了很多关于iPhone OS发展的基本问题。首先是Please go through the tutorials on these

+15

Kenny,即使对于“初学者”问题,如果StackOverflow是网络上最好的资源,它会不会很酷?在很多方面,它是;然而,将这些类型的问题重定向到您最喜欢的教程并不符合该愿景。随你便。 – 2012-04-26 15:49:59

+6

同意。我是一位经验丰富的编码员,带着不错的应用,我仍然带着这样的问题来到这里。我在这里找到的最不喜欢的答案是“我们不是在这里教你程序”..真的吗?因为你为什么在这里?因为我在这里学习并帮助人们学习。通常情况下,我可以通过一个30-60分钟的教程来开始制作一个ios项目。 – badweasel 2013-11-02 18:58:58