Iphone 不包含数据的外部类对象

Iphone 不包含数据的外部类对象,iphone,objective-c,ios,Iphone,Objective C,Ios,我有一个类UserData,我导入到这个viewcontroller,但是单元格上的数据 是空白的。 同样,userdata是另一个类userdata的对象。我确实导入了“UserData.h”,但表是空的 如果我用"某物"来代替细节字符串或标题字符串,它就会出现在桌子上 - (void)viewDidLoad { detailsstring = userdata.details; titlestring = userdata.title; tabledata = [[NSMutableArr

我有一个类UserData,我导入到这个viewcontroller,但是单元格上的数据 是空白的。 同样,userdata是另一个类userdata的对象。我确实导入了“UserData.h”,但表是空的 如果我用"某物"来代替细节字符串或标题字符串,它就会出现在桌子上

- (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];

如果要用字符串文字替换
detailsstring
,并且一切正常,则
detailsstring
viewDidLoad
中必须为nil,您需要在视图控制器之间共享数据,当您使用
导入“yourClass”
时,您将创建一个同名clas的新实例,但不会保存相同的内容(新内容将为零)。为了在视图之间共享数据,您可以使用代理,例如,核心数据或SQLite可以用于相同的目的。但从所有的答案和评论来看,德莱格特更好:)


编辑正如也评论过的那样,NSUserDeffaults不是在类和对象之间共享数据的合适方式。因为它的易用性,我提到了默认设置。我希望此编辑对以后看到此答案的人有用

如果userdata.title在开始时包含
NSString
的实例,您是否检查过?(
NSLog(@“%@,%@”,userdata.details,userdata.title);
)哎呀,就是这样!很有道理,我真的不知道怎么做。但是我如何选择一名代表呢???请看一下这个:。。我还没有充分考虑授权给yyet,所以我不想混淆你的想法:)我希望这个链接能帮助你。如果没有,我可以共享NSUserDeffaults的代码,这在这样的工作中是不需要的:)由于性能问题,苹果强烈建议不要将与设置无关的数据存储在
NSUserDefaults
中。此外,顾名思义,
NSUserDefaults
用于默认设置,而不是用于存储任意数据。我建议使用合成属性、属性列表(plist)、SQLite或核心数据。