gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:35:33 24 4
gpt4 key购买 nike

我有一个奇怪的问题,与将 NSManagedObject 的实例传递给另一个 View Controller 有关。

我像这样将从 NSFetchResultsController 获取的 NSManagedObject 实例传递给另一个 View Controller 。

- (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。

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

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

在这个 viewcontroller 的 viewDidAppear 方法中,我重新加载了 tableView,以显示传递的实例的数据。这第一次工作正常,当对象被传递给 viewcontroller 时,但是如果我然后使用 tabbar 切换到另一个 viewcontroller 然后返回到 viewcontroller,传递的对象的所有数据都是空的,它已经变成了过错。

我如何防止这种情况发生,防止当我返回到 View Controller 时数据为空/错误?

最佳答案

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

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

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com