外部类对象不保存数据

时间:2012-02-21 22:33:09

标签: iphone objective-c ios

我有一个UserData类,我导入到这个viewcontroller但是单元格上的数据 是空白的。 userdata再次是另一个类UserData的对象。我做了#import "UserData.h",但桌子是空的  如果我用@“something”代替detailsstring或titlestring,它会显示在表格

- (void)viewDidLoad
{
detailsstring = userdata.details;
titlestring = userdata.title;

tabledata = [[NSMutableArray alloc] initWithObjects:detailsstring, nil];
 tablesubtitles = [[NSMutableArray alloc] initWithObjects:titlestring, nil];
[super viewDidLoad];

}

和...

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{

UITableViewCell *cell = nil;

cell = [tableView dequeueReusableCellWithIdentifier:@"homeworkcell"];

if(cell == nil)
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"homeworkcell"];

}
cell.textLabel.text = [tabledata objectAtIndex:indexPath.row];
cell.detailTextLabel.text = [tablesubtitles objectAtIndex:indexPath.row];
cell.textLabel.font = [UIFont systemFontOfSize:14.0];

2 个答案:

答案 0 :(得分:2)

您需要在视图控制器之间共享数据,当您使用#import "yourClass"创建具有相同名称的clas的新实例时,但不会保留相同的内容(新的内容将为nil)。要在视图之间共享数据,您可以使用this answer等代理,核心数据或 SQLite 可用于相同目的。但是,从我所看到的所有答案和评论中看到的删除更好:)

编辑由于 Jack Lawrence 也有评论,NSUserDeffaults不是在类和对象之间共享数据的正确方法。仅仅因为它易于使用我提到了默认值。我希望这个编辑对以后看到这个答案的人有用

答案 1 :(得分:0)

如果您使用字符串文字替换detailsstring并且一切正常,那么detailsstring中的viewDidLoad必须为零