我有一个 Objective-C 类,它看起来像:
@interface myClass : NSObject
{
NSMutableDictionary *aDict;
}
它的 setter 方法如下所示:
- (void) setADict: (NSMutableDictionary *) newDict
{
[aDict release];
[newDict retain];
aDict = newDict;
}
我已经创建了对象的一个实例,将数据放入 aDict,现在想要摆脱该对象,在进程中清理它的内存。两个问题:
1) 我应该在myClass的dealloc方法中释放aDict吗,如图所示?
[aDict release];
==================================================== ============================
2)我已经将几个子字典嵌套到aDict中,由keyA和keyB表示,如下所示:
// aDict:
{
keyA = {
keyA1 = "Hello world";
keyA2 = 1234;
};
keyB = {
keyB1 = Earth;
keyB2 = 25000;
};
}
[ aDict release]消息是否会“沿链传播”并清理 aDict 内的所有子字典,包括它们的键/值对象?或者,我是否必须做其他事情才能摆脱它们?