据我所知,使用帮助器方法(如NSMutableArray
)创建arrayWithArray
会将数组和可变数组添加到当前自动释放池中。使用mutableCopy
时,要复制的数组会添加到自动释放池中,但生成的NSMutableArray
不会。没有ARC,这是一个显着的差异。
但是当使用ARC时,除了上面描述的内容之外还有什么不同之处,哪些与ARC无关?我用两种方式看过代码。当ARC打开时,是否有关于如何创建不可变对象的可变版本的既定最佳实践,为什么会这样?
答案 0 :(得分:1)
由于arrayWitharray在当前自动释放池中添加了两个对象,但后者没有。因此,由于自动释放池的耗尽,第一个的性能略微降低。所以使用下面的后一个。将不可变数组转换为弧形或非弧形的可变数组的简单而最好的方法: -
NSMutableArray *array=[yourArray
mutableCopy];