可可「內存管理編程指南」的文件說:可可內存管理規則
如果使用名稱以「黃金」或「新」或包含一個方法創建你需要一個對象的所有權「複製」(例如,alloc,newObject或mutableCopy),或者如果您發送一個保留消息。您有責任放棄使用發行版或自動發行版所擁有的對象的所有權。任何其他時間你收到一個對象,你不能釋放它。
這是否也適用於[NSNumber numberWithFloat:]或[CAAnimation動畫]等便利方法?我應該釋放這些還是不?
謝謝!
可可「內存管理編程指南」的文件說:可可內存管理規則
如果使用名稱以「黃金」或「新」或包含一個方法創建你需要一個對象的所有權「複製」(例如,alloc,newObject或mutableCopy),或者如果您發送一個保留消息。您有責任放棄使用發行版或自動發行版所擁有的對象的所有權。任何其他時間你收到一個對象,你不能釋放它。
這是否也適用於[NSNumber numberWithFloat:]或[CAAnimation動畫]等便利方法?我應該釋放這些還是不?
謝謝!
這種說法仍然是便利的方法真實的,尤其是最後一句
您收到一個對象, 你不能釋放它的任何其他時間。
這意味着你必須不釋放這些對象,除非你事先明確向他們發送一個retain消息。
這些方法名稱不以alloc
或new
開頭,也不包含copy
,也不是retain
。所以,不,你不擁有這些方法返回的對象,所以你不應該釋放它們。
這意味着他們是autoreleased,對不對?謝謝! – Kay 2010-07-06 13:49:23
@Kay:是的,當它們從便捷方法返回時,它們會自動釋放。 – 2010-07-06 15:47:36
不,它意味着你沒有它們的所有權,因此你不應該釋放它們。他們的主人如何選擇管理自己的記憶(保留+自動釋放或不)是你的擔憂。 – 2010-07-06 19:17:40