2010-07-06 64 views
0

可可「內存管理編程指南」的文件說:可可內存管理規則

如果使用名稱以「黃金」或「新」或包含一個方法創建你需要一個對象的所有權「複製」(例如,alloc,newObject或mutableCopy),或者如果您發送一個保留消息。您有責任放棄使用發行版或自動發行版所擁有的對象的所有權。任何其他時間你收到一個對象,你不能釋放它。

這是否也適用於[NSNumber numberWithFloat:]或[CAAnimation動畫]等便利方法?我應該釋放這些還是不?

謝謝!

回答

2

這種說法仍然是便利的方法真實的,尤其是最後一句

您收到一個對象, 你不能釋放它的任何其他時間。

這意味着你必須釋放這些對象,除非你事先明確向他們發送一個retain消息。

+0

這意味着他們是autoreleased,對不對?謝謝! – Kay 2010-07-06 13:49:23

+0

@Kay:是的,當它們從便捷方法返回時,它們會自動釋放。 – 2010-07-06 15:47:36

+3

不,它意味着你沒有它們的所有權,因此你不應該釋放它們。他們的主人如何選擇管理自己的記憶(保留+自動釋放或不)是你的擔憂。 – 2010-07-06 19:17:40

1

這些方法名稱不以allocnew開頭,也不包含copy,也不是retain。所以,不,你不擁有這些方法返回的對象,所以你不應該釋放它們。