removeObjectAtIndex而不释放对象

时间:2010-01-04 15:46:16

标签: cocoa memory-management nsmutablearray

我有一个可变数组,我想按照一些标准按嵌套顺序排列。 为了实现这一点,我想将某些元素移动到另一个元素的可变数组中,将它们从主可变数组中移除,但不释放它们。实际上问题是关于从数组中删除元素而不释放它们我如何实现它?

由于

2 个答案:

答案 0 :(得分:7)

如果没有数组释放对象,则无法从数组中删除对象。如果你想确保它粘在一起,只需先自己保留,然后在完成后松开。这些都是非常便宜的操作,所以你不必过于担心它。

答案 1 :(得分:5)

由于您正在将项目从一个数组移动到另一个数组,因此如果您首先将对象添加到新数组然后将其从原始数组中删除,则会更容易。

  1. 当您将其添加到新数组时,它将被隐式保留。
  2. 当您从旧数组中删除它时,它会被隐式释放。
  3. 这比保留它更快,将其从数组中删除,将其添加到新数组然后释放它。