該文檔沒有提到任何有關的信息。當一箇舊物體被「移除」並且一個新物體進入它的位置時,那麼舊物體會發生什麼?我必須自己釋放它嗎?將-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