我有一個Objective-C類,看起來像:如何在Objective-C中正確釋放NSMutableDictionary實例變量和嵌套字典?
@interface myClass : NSObject
{
NSMutableDictionary *aDict;
}
它的setter方法是這樣的:
- (void) setADict: (NSMutableDictionary *) newDict
{
[aDict release];
[newDict retain];
aDict = newDict;
}
我所創建的對象的實例,將數據放入aDict,和現在想擺脫這個對象,在這個過程中清理它的記憶。兩個問題:
1)我應該釋放aDict在myClass的的的dealloc方法,如圖?
[aDict release];
=========================================== ==================================
2)我已經嵌套幾個兒童字典到aDict,通過KEYA和KEYB表示,如下所示:
// aDict:
{
keyA = {
keyA1 = "Hello world";
keyA2 = 1234;
};
keyB = {
keyB1 = Earth;
keyB2 = 25000;
};
}
將一個[aDict釋放]消息「傳播陶氏鏈「並清理aDict中的所有子字典,包括其鍵/值對象?或者,我需要做其他的事情來擺脫它們嗎?
哇,謝謝你的回答,並且非常感謝你抓住錯誤! :)我正在研究Hillegass的「Mac OX X可可編程」,他有三種完全相同的mem管理習慣。愚蠢的我扭轉了保留/釋放的順序,哈哈。我現在不會忘記它,保證! – 2009-09-10 01:42:41