我有一个奇怪的问题,与将 NSManagedObject 的实例传递给另一个 View Controller 有关。
我将一个从 NSFetchResultsController 获取的 NSManagedObject 实例传递给另一个 View Controller 。
- (void)tableViewUITableView*)tableView didSelectRowAtIndexPathNSIndexPath*)indexPath
{
Product* product = (Product*)[self.fetchedResultsController objectAtIndexPath:indexPath];
DetailViewController* pDetailVC = [self.storyboard instantiateViewControllerWithIdentifier"DetailViewController"];
pDetailVC.product = product;
pDetailVC.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:pDetailVC
animated:YES];
}
我正在使用 Restkit,我的 managedObjectContext 是 RKManagedObjectStore mainQueueManagedObjectContext。
我的应用程序也包含一个 UITabbarController。
然后我在对象被传递到的 View Controller 中的 cellForAtIndexPath 中访问传递的对象属性,如下所示:
cell.descLabel.text = self.product.info;
在这个 View Controller 的 viewDidAppear 方法中,我重新加载了 tableView,以显示传递的实例的数据。这第一次工作正常,当对象被传递给 View Controller 时,但是如果我然后使用标签栏切换到另一个 View Controller 然后返回到 View Controller ,传递的对象的所有数据都是空的,它已经变成了一个过错。
如何防止这种情况发生,防止当我返回 View Controller 时数据为空/错误?
Best Answer-推荐答案 strong>
每次切换到该 tabBar 时都会调用 viewDidAppear ,但不确定为什么会导致 NSManagedObject 出现故障,这取决于您是否正在进行其他更改在相同的上下文中。
如果您使用此 NSmanagedObject 只是为了显示其属性,我建议您将 NSmanagedObject 信息传递给自定义 NSObject 子类并使用表数据源上的那个对象
关于ios - 传递的 NSManagedObject 实例变成错误 - RKManagedObjectStore,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/22541999/
|