该文档没有提到任何有关的信息。当一个旧物体被“移除”并且一个新物体进入它的位置时,那么旧物体会发生什么?我必须自己释放它吗?将-replaceObjectAtIndex:withObject:of NSMutableArray释放被新对象替换的旧对象吗?
2
A
回答
12
不,你不必自己释放它。
如果更换对象都有一个保留计数等于0
新对象时,您可能会得到一个错误被保留。旧对象被释放。
3
您不必释放它。
你没有执行ALLOC,复制或保留它,因此是不负责的记忆 - 这个文档是很清楚的。
我不希望Apple在SDK中记录每种方法的内存管理过程,除非它违反了他们已经设置的内存管理规则。如果文档没有说出任何内容,您可以假定默认规则适用。
1
的文件非常明确地指出在文件的顶部这一权利:
一样的NSArray,NSMutableArray里的情况下维持其内容的强引用。如果您不使用垃圾回收,则当您将一个对象添加到数组中时,该对象将收到一条保留消息。当一个对象从可变数组中移除时,它会收到一条释放消息。如果没有对该对象的进一步引用,这意味着该对象被解除分配。如果你的程序保持对这样一个对象的引用,那么引用将会失效,除非你在从数组中移除对象之前发送一个保留消息。
对于每种方法都没有重复记录这一点。
相关问题
- 1. NSMutableArray是不是被替换的对象?
- 2. NSMutableArray。对象值不被替换
- 3. 对象与NSMutableArray里的对象 - 对象如何释放
- 4. 添加新对象替换旧对象的内容 - VueJS Store
- 5. 一个对象被释放
- 6. 替换,移动NSMutableArray中的对象
- 7. 替换nsmutablearray里面的一个对象
- 8. 的NSMutableArray并不需要替换对象
- 9. 替换2d嵌套NSMutableArray中的对象
- 10. 在NSMutableArray中替换对象索引
- 11. 当包含这些对象的NSMutableArray被释放时,如何释放组合对象?
- 12. 释放对象
- 13. NSMutableArray替换对象insted添加
- 14. 的释放对象
- 15. 释放对象内存中的对象
- 16. 对象_.deepClone,不等于旧对象吗?
- 17. 将Segue放到一个NSMutableArray对象中
- 18. 对象的NSMutableArray
- 19. malloc错误 - 对于释放的对象的错误校验和 - 对象可能在被释放后被修改
- 20. 释放PyTuple对象
- 21. 释放ABMultiValueRef对象
- 22. 对象不释放
- 23. 对象被释放 - 为什么?哪里?
- 24. 非保留对象:何时被释放?
- 25. 这个对象为什么被释放?
- 26. 使用现有密钥向Session添加新对象是否替换旧对象?
- 27. Excel互操作对象不被释放
- 28. COM对象被释放非故意
- 29. 对象被释放得太早?
- 30. 替换对象()
如果retainCount> 1(当某些其他对象仍在保留它时),您可能不会立即得到该错误。 – rein 2009-05-25 12:59:13