removeObjectAtIndex而不释放对象

Nav*_*mon 2 cocoa memory-management nsmutablearray

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

谢谢

Ben*_*ieb 7

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


Abi*_*ern 5

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

  1. 将它添加到新数组时,它将被隐式保留.
  2. 当您从旧数组中删除它时,它将被隐式释放.

这比保留它更快,将其从阵列中删除,将其添加到新阵列然后释放它.

  • Nava Carmon:这没有帮助:对象的可变性与其生命周期无关.您需要检查您的所有权 - 听起来您在某些时候未能保留或复制字符串. (5认同)