當我有一些自定義類對象的NSMutableArray,宣佈當我有一個NSMutableArray我必須釋放所有的對象嗎?
NSMutableArray *list = [NSMutableArray new];
,我必須也釋放*列表中的所有對象?
當我有一些自定義類對象的NSMutableArray,宣佈當我有一個NSMutableArray我必須釋放所有的對象嗎?
NSMutableArray *list = [NSMutableArray new];
,我必須也釋放*列表中的所有對象?
將對象引用放入NSMutableArray
將使該對象的保留計數遞增,因爲該數組保留了每個對象。 將release
消息發送到數組時,它也會將相同的消息發送到它引用的所有對象。
因此,如果您沒有將它們保留在數組中,則不應再做任何事情。
不,數組被釋放時,數組中的所有對象都會發送釋放消息。所以當autorelease池被釋放或耗盡時,列表中的所有對象都將在這種情況下被釋放。
如果您在NSMutableArray
中添加對象,則會在該對象上調用retain
。當你釋放數組時,它會調用發佈的所有對象,因爲它在添加時以前在對象上調用了retain
。
所以你並不需要顯式調用release
每個對象上,一個release
它足夠的陣列實例。
要了解必須遵守的內存管理的基本規則,請閱讀「Memory Management Rules」。