2009-05-25 75 views

回答

12

不,你不必自己釋放它。

如果更換對象都有一個保留計數等於0

新對象時,您可能會得到一個錯誤被保留。舊對象被釋放。

+0

如果retainCount> 1(當某些其他對象仍在保留它時),您可能不會立即得到該錯誤。 – rein 2009-05-25 12:59:13

3

您不必釋放它。

你沒有執行ALLOC複製保留它,因此是不負責的記憶 - 這個文檔是很清楚的。

我不希望Apple在SDK中記錄每種方法的內存管理過程,除非它違反了他們已經設置的內存管理規則。如果文檔沒有說出任何內容,您可以假定默認規則適用。

1

的文件非常明確地指出在文件的頂部這一權利:

一樣的NSArray,NSMutableArray裏的情況下維持其內容的強引用。如果您不使用垃圾回收,則當您將一個對象添加到數組中時,該對象將收到一條保留消息。當一個對象從可變數組中移除時,它會收到一條釋放消息。如果沒有對該對象的進一步引用,這意味着該對象被解除分配。如果你的程序保持對這樣一個對象的引用,那麼引用將會失效,除非你在從數組中移除對象之前發送一個保留消息。

對於每種方法都沒有重複記錄這一點。