创建的TableView会忘记从初始化到创建表的变量

时间:2012-09-24 23:06:49

标签: ios xcode

我想在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];
}

0 个答案:

没有答案