TableViewController で TableView を作成し、それを dic で初期化したいと考えています。dic 内のアイテムの数によって、TableView の行数が決まります。Initializer で、そのカウントと取得を表示します:「8 エントリで作成されたリソース テーブル」。しかし、テーブルが構築され、メソッド「numberOfRowsInSection」が呼び出されると、「現在: 0 エントリ」が返されます。
辞書を静的にしてみましたが成功しませんでした。また、「@property(strong,nonatomic,retain)」も試しました。インスタンスの内容を忘れないようにするにはどうすればよいですか?
編集: ここに移動しました: numberOfRowsInSection が呼び出されると、TableView 初期化子で設定された変数が忘れられ ます 編集 2: 既にリンクされたスレッドで問題が解決されました。これも同様です。
関連するコード スニペット:
// somewhere in ViewController.m:
...
resourceTableViewController = [[ResourcesTableViewController alloc] initWithDictionary:dictionary];
// ResourcesTableViewController.h:
@interface ResourcesTableViewController : UITableViewController
@property(nonatomic,retain)NSDictionary *resourcesAsDictionary;
- (id)initWithDictionary:(NSDictionary*)dic;
// ResourcesTableViewController.m:
- (id)initWithDictionary:(NSDictionary*)dic {
if (self = [super init])
[self setResourcesAsDictionary:dic];
NSLog(@"resource table created with %i entries.",[_resourcesAsDictionary count]);
return self;
}
...
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
NSLog(@"Now: %i entries.",[_resourcesAsDictionary count]);
return [_resourcesAsDictionary count];
}