我想在TableViewController中创建一个TableView并用dic初始化它。 dic中的项目数应该决定我的TableView的行数。在初始化程序中,我显示它的计数并获得:“使用8个条目创建的资源表”。但是当构建Table并调用方法'numberOfRowsInSection'时,它返回“Now:0 entries。”
我尝试使字典静态但没有成功,并尝试了“@property(强,非原子,保留)”。如何让实例不要忘记它的内容?
编辑:移到此处:Variable set in the TableView initializer is forgotten when numberOfRowsInSection is called 编辑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];
}