gpt4 book ai didi

iphone - NSManagedObjectContext 无法删除其他上下文中的对象

转载 作者:行者123 更新时间:2023-12-03 18:20:15 28 4
gpt4 key购买 nike

我有两个实体,每个实体都显示在自己的 UITableView 部分上。

我启用了编辑功能,允许用户通过向右滑动来删除行。这对于第一个实体来说效果很好,但是当我尝试删除第二个实体中的对象时,我收到此错误:

An NSManagedObjectContext cannot delete objects in other contexts

我明白了错误的意思,但我看不出它在这里如何应用。我使用对上下文的保留引用来创建、获取和删除数据库中的所有对象,因此我确信只有一个上下文。我也没有使用多线程。知道会发生什么吗?

最佳答案

您从中获取 NSManagedObject 的上下文是否与您用于删除 NSManagedObject 的上下文是同一个实例?如果没有,您需要:

  • 拥有对同一个 NSManagedObjectContext 的共享引用,以便您从创建或获取对象的同一上下文中删除该对象。如果您不使用多线程,那么您只需在代码中调用 [[NSManagedObjectContext alloc] init] 一次。

  • 如果您必须使用 NSManagedObjectContext 的两个不同实例,请从第一个获得的 NSManagedObject 中获取 objectID上下文,以便您稍后可以调用:

    [context deleteObject:[context objectWithID:aObjectID]];

    上下文之间的 NSManagedObjectID 是相同的,但 NSManagedObject 本身却不相同。

关于iphone - NSManagedObjectContext 无法删除其他上下文中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5863724/

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