我有一个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