使用类辅助方法创建可变对象,或使用ARC创建mutableCopy

时间:2014-07-01 17:13:58

标签: ios objective-c copy automatic-ref-counting

据我所知,使用帮助器方法(如NSMutableArray)创建arrayWithArray会将数组和可变数组添加到当前自动释放池中。使用mutableCopy时,要复制的数组会添加到自动释放池中,但生成的NSMutableArray不会。没有ARC,这是一个显着的差异。

但是当使用ARC时,除了上面描述的内容之外还有什么不同之处,哪些与ARC无关?我用两种方式看过代码。当ARC打开时,是否有关于如何创建不可变对象的可变版本的既定最佳实践,为什么会这样?

1 个答案:

答案 0 :(得分:1)

由于arrayWitharray在当前自动释放池中添加了两个对象,但后者没有。因此,由于自动释放池的耗尽,第一个的性能略微降低。所以使用下面的后一个。将不可变数组转换为弧形或非弧形的可变数组的简单而最好的方法: -

  NSMutableArray *array=[yourArray 
  mutableCopy];