13

可能重复:
NSMutableDictionary 的字面创建效率是否低于类帮助方法?

根据介绍 ObjectiveC 文字的 WWDC 视频,NSMutableArray可以像这样初始化 s:

[NSMutableArray arrayWithArray:@[]];

但是如果我们这样做呢:

[@[] mutableCopy];

我知道一个是初始化数组,另一个只是提供浅拷贝;因此内存管理是不同的。但是如果我们使用ARC,那么使用后者有什么缺点呢?它更贵吗?ARC 的处理方式可能不同,但我只是想知道 usingmutableCopy是否“更糟”。

4

1 回答 1

6

在前一种情况下,您最终会在当前自动释放池中添加两个对象:NSArray 文字和您从中创建的 NSMutableArray。在后者中,文字 NSArray 被添加到自动释放池中,但从中复制的 NSMutableArray 没有。所以第一种情况在性能方面稍差一些,因为清空自动释放池(例如在运行循环周期结束时)需要连续释放两个对象,而在第二种情况下,副本将与自动释放的文字。在实践中,时间差将是无限小的。

于 2012-09-28T17:09:25.527 回答