我正在显示我从managedObjectContext
获取的对象中的一些数据。
当我退出应用程序并再次打开它(顺便说一句,这是什么是正确的术语,我认为重新启动是其他的东西),最后一个视图仍然打开,标签仍然填充。一切都很好看。滚动此视图后,将重新加载表格单元格,现在所有标签都只显示null
值。
我认为我的对象在重新启动后是{nil},但我不知道为什么。 是否有可能手动缓存对象?
答案 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];
}