2012-03-28 61 views

回答

2

obj-c集合中的對象被釋放時,該集合是解除分配(這不同於發佈)。因此,在實踐中,如果您將對象添加到collection中,則collection將管理其對象所有權,並且不需要爲其元素添加額外的版本。

+0

所以我必須dealloc,然後釋放? – Voldemort 2012-03-28 15:40:59

+0

不,你需要釋放你的數組,因爲你保留它,它會被自動釋放 - 然後它的元素將被釋放 – Vladimir 2012-03-28 15:41:52

+0

因此1 alloc = 1釋放?謝謝。 – Voldemort 2012-03-28 15:45:36

2

查看Collections Programming Topics指南。更具體地, 陣列部和陣列基礎話題:

當數組是在託管內存環境釋放,每個 元件被髮送釋放消息。

因此,如果釋放的陣列帶來了其保留計數爲0,並且它是大約然後 被解除分配,在這一點的對象將收到一個release消息。 否則,釋放數組只是將其保留計數遞減爲其他常規對象的任何其他 。

此外,當您將對象放置在數組中時,它們會收到retain消息,如本指南所解釋的 。

相關問題