OStack程序员社区-中国程序员成长平台

标题: ios - 传递的 NSManagedObject 实例变成错误 - RKManagedObjectStore [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 20:38
标题: ios - 传递的 NSManagedObject 实例变成错误 - RKManagedObjectStore

我有一个奇怪的问题,与将 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-推荐答案


每次切换到该 tabBar 时都会调用 viewDidAppear,但不确定为什么会导致 NSManagedObject 出现故障,这取决于您是否正在进行其他更改在相同的上下文中。

如果您使用此 NSmanagedObject 只是为了显示其属性,我建议您将 NSmanagedObject 信息传递给自定义 NSObject 子类并使用表数据源上的那个对象

关于ios - 传递的 NSManagedObject 实例变成错误 - RKManagedObjectStore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22541999/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4