菜鸟教程小白 发表于 2022-12-12 20:38:12

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


                                            <p><p>我有一个奇怪的问题,与将 NSManagedObject 的实例传递给另一个 ViewController 有关。 </p>

<p>我将一个从 NSFetchResultsController 获取的 NSManagedObject 实例传递给另一个 ViewController 。 </p>

<pre><code>- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{

    Product* product = (Product*);

    DetailViewController* pDetailVC = ;

    pDetailVC.product = product;
    pDetailVC.managedObjectContext = self.managedObjectContext;

    [self.navigationController pushViewController:pDetailVC
                                       animated:YES];
}
</code></pre>

<p>我正在使用 Restkit,我的 managedObjectContext 是 RKManagedObjectStore mainQueueManagedObjectContext。 </p>

<p>我的应用程序也包含一个 UITabbarController。 </p>

<p>然后我在对象被传递到的 ViewController 中的 cellForAtIndexPath 中访问传递的对象属性,如下所示:</p>

<pre><code>cell.descLabel.text = self.product.info;
</code></pre>

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

<p>如何防止这种情况发生,防止当我返回 ViewController 时数据为空/错误? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>每次切换到该 tabBar 时都会调用 <code>viewDidAppear</code>,但不确定为什么会导致 <code>NSManagedObject</code> 出现故障,这取决于您是否正在进行其他更改在相同的上下文中。 </p>

<p>如果您使用此 <code>NSmanagedObject</code> 只是为了显示其属性,我建议您将 <code>NSmanagedObject</code> 信息传递给自定义 <code>NSObject</code> 子类并使用表数据源上的那个对象</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 传递的 NSManagedObject 实例变成错误 - RKManagedObjectStore,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/22541999/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/22541999/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 传递的 NSManagedObject 实例变成错误 - RKManagedObjectStore