ios - 无法在 NSManagedObjects 之间建立关系

标签 ios core-data nsmanagedobject nsmanagedobjectcontext

我有 1 个 ToDo 对象,我正在创建 1 个 Report 对象。它们都是由同一个 NSManagedObjectContext 的不同 MOC 创建的 NSManagedObject。需要说明的是,NSManagedObjectContext 是我的 PersistenceStore 类中的一个 ivar。

ToDo 对象来自一个数组,该数组继承自 PersistenceStore 中的一个方法,该方法返回包含保存在 NsPresistentStoreCoordinator 中的对象的数组。 todo 对象作为属性传递给我应该初始化报告的类。

报告类是从 PersistenceStorage NSManagedObject 的 MOC 初始化的,代码行如下:

NSManagedObjectContext *context = [store managedObjectContext];
Report *report = [NSEntityDescription insertNewObjectForEntityForName:@"Report" inManagedObjectContext:context];

Todo 和 Report 对象具有一对一的关系。但是我尝试设置关系时出现错误

<\NSInvalidArgumentException> Illegal attempt to establish a relationship 'todo' between objects in different contexts

在我看来,我使用的是相同的 NSManagedObjectContext。有人可以帮助我吗?

最佳答案

查找另一个实体的上下文:

NSManagedObjectContext *context = [store managedObjectContext];

 NSManagedObject *ctx = [context existingObjectWithID:[todo objectID] error:&error];
Report *report = [NSEntityDescription insertNewObjectForEntityForName:@"Report" inManagedObjectContext:ctx];

关于ios - 无法在 NSManagedObjects 之间建立关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13234316/

相关文章:

ios - 外部 Testflight beta 是否需要审查 IAP

ios - Coredata 中的关系错误

iphone - 遍历从Core Data提取的请求数据时遇到错误

ios - 解码为 NSManagedObject 对象后需要获取请求

objective-c - 我应该总是检查 [[NSArray alloc] init ...] 是否返回 nil 吗?

ios - 使用核心数据 Swift 从 UITextView 保存文本

ios - [NSDate distantPast]是否始终提供相同的值?

ios - 如何使用coredata每次从表中获取10条记录

ios - 核心数据 : when is deleteObject: done?

iphone - 即使定义了依赖键,我是否也必须手动更新 transient 属性?