次のようなObjective-Cクラスがあります。
@interface myClass : NSObject
{
NSMutableDictionary *aDict;
}
その setter メソッドは次のようになります。
- (void) setADict: (NSMutableDictionary *) newDict
{
[aDict release];
[newDict retain];
aDict = newDict;
}
オブジェクトのインスタンスを作成し、データを aDict に入れました。次に、オブジェクトを削除して、その過程でメモリをクリーンアップしたいと考えています。2 つの質問:
1)示されているように、myClassのdeallocメソッドでaDictを解放する必要がありますか?
[aDict release];
================================================== ===========================
2)次のように、いくつかの子辞書をaDictにネストしました。これは、 keyAおよびkeyBで表されます。
// aDict:
{
keyA = {
keyA1 = "Hello world";
keyA2 = 1234;
};
keyB = {
keyB1 = Earth;
keyB2 = 25000;
};
}
[ aDictリリース]メッセージは「チェーンを伝播」し、キー/値オブジェクトを含む aDict 内のすべての子辞書をクリーンアップしますか? または、それらを取り除くために何か他のことをしなければなりませんか?