传递的NSManagedObject实例变成了错误--RKManagedObjectStore

时间:2014-03-20 18:28:23

标签: ios objective-c restkit-0.20

我有一个奇怪的问题,涉及将NSManagedObject的实例传递给另一个viewcontroller。

我将NSFetchResultsController中提取的NSManagedObject实例传递给另一个viewcontroller。

- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)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。

然后我访问传递对象的viewcontroller中的cellForAtIndexPath中传递的对象属性,如下所示:

cell.descLabel.text = self.product.info;

在我viewDtroller的viewDidAppear方法中,我重新加载tableView,以显示传递的实例的数据。当对象传递给viewcontroller时,第一次正常工作,但如果我然后使用tabbar切换到另一个viewcontroller,然后返回到viewcontroller,传递的对象的所有数据都为null,它已被转换为故障。

如何防止这种情况发生,当我回到viewcontroller时,防止数据为空/故障?

1 个答案:

答案 0 :(得分:1)

每次切换到tabBar时都会调用viewDidAppear,不确定导致NSManagedObject出错的原因,这取决于您是否在同一个上下文中进行其他更改。

如果您仅使用此NSmanagedObject来显示其属性,我建议您将NSmanagedObject信息传递给自定义NSObject子类并在表格数据源上使用该对象