私のプロジェクトには次のようなコードがあります。テーブルビューの各セルにビューコントローラーのビューを追加しています。
このような配列
NSMutableArray *arrTbl=[[NSMutableArray alloc] init];
NSMutableDictionary *dOne=[[NSMutableDictionary alloc] init];
myViewController *objVCtr=[[myViewController alloc] initWithNibName:@"myViewController" bundle:nil];
[dOne setValue:objVCtr forKey:@"cellVCtr"];
NSMutableDictionary *dTwo=[[NSMutableDictionary alloc] init];
myViewController *objVCtr1=[[myViewController alloc] initWithNibName:@"myViewController" bundle:nil];
[dOne setValue:objVCtr1 forKey:@"cellVCtr"];
NSMutableDictionary *dThree=[[NSMutableDictionary alloc] init];
myViewController *objVCtr2=[[myViewController alloc] initWithNibName:@"myViewController" bundle:nil];
[dOne setValue:objVCtr2 forKey:@"cellVCtr"];
[arrTbl addObjectsFromArray:[NSArray arrayWithObjects:dOne,dTwo,dThree,nil]];
さて、問題は、これをどのようにリリースするかです。
arrTbl は、ビューコントローラーの参照を持つ辞書と辞書を持つメイン配列です。
では、上記の文の後に次の文を書くべきでしょうか?
[dOne release];
[dTwo release];
[dThree release];
[objVCtr release];
[objVCtr1 release];
[objVCtr2 release];
上記のコードを書いた後、配列はView Controllerを指すことができますか?
要約すると、質問は次のとおりです。
- 辞書には実際に何が含まれていますか?(View Controllerの数を保持するか、View Controllerの参照のみを保持しますか)
- 配列には実際に何が含まれていますか? (辞書の数を保持するのか、それとも単に辞書を参照するのか?)
- ここでは、View Controllerの配列と、異なる値を持つ各View Controllerが必要です(そのため、配列に辞書を追加しています)