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

1)

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

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

然而,它们真的等价吗? (1) 有一个 alloc 语句,而 (2) 没有。一个比另一个更可取吗?

最佳答案

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

  • 分配 → 初始化
  • 分配 → 初始化 → 自动释放 → 保留

  • 首选方法是不复制数组。
    theArray = [[NSKeyedUnarchiver unarchiveObjectWithData:theData] retain];
    

    顺便说一句,我注意到你问了很多关于 iPhone 操作系统开发的基本问题。 Please go through the tutorials on these 首先。

    关于objective-c - NSMutableArray arrayWithArray : vs. initWithArray:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3749657/

    10-10 20:30