NSMutableArray arrayWithArray:与initWithArray:

时间:2010-09-20 08:15:25

标签: objective-c cocoa-touch nsmutablearray

这些都适用于我的应用程序,没有任何明显的区别:

1)

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

2)

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

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

1 个答案:

答案 0 :(得分:5)

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

  1. alloc→init
  2. alloc→init→autorelease→retain
  3. 首选方法是不复制数组。

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

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