应用再次激活后,对象为零

时间:2013-04-12 12:06:10

标签: ios core-data

我正在显示我从managedObjectContext获取的对象中的一些数据。 当我退出应用程序并再次打开它(顺便说一句,这是什么是正确的术语,我认为重新启动是其他的东西),最后一个视图仍然打开,标签仍然填充。一切都很好看。滚动此视图后,将重新加载表格单元格,现在所有标签都只显示null值。

我认为我的对象在重新启动后是{nil},但我不知道为什么。 是否有可能手动缓存对象?

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案:在将数据提供给DetailsView之前,添加一个属性并将数据放入此属性。

<强>之前:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    MyObject* myObj = (MyObject *)[self.managedObjectContext existingObjectWithID:[self.searchResults objectAtIndex:indexPath.row] error:nil];
    DetailsViewController *details = [[DetailsViewController alloc] init];
    details.myObject = myObj;
    [self.navigationController pushViewController:details animated:YES];
}

<强>后:

@property (nonatomic, strong) MyObject* myObj;

我为对象添加了一个属性,并将其添加到didSelectRowAtIndexPath方法。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    self.myObj = (MyObject *)[self.managedObjectContext existingObjectWithID:[self.searchResults objectAtIndex:indexPath.row] error:nil];
    DetailsViewController *details = [[DetailsViewController alloc] init];
    details.myObject = self.myObj;
    [self.navigationController pushViewController:details animated:YES];
}