gpt4 book ai didi

ios - 核心数据 : Add relation object to existing object

转载 作者:行者123 更新时间:2023-11-29 01:19:47 25 4
gpt4 key购买 nike

我的核心数据中有以下实体

  • 留言
  • 部门

其中关系如下。

  • 消息有部门(发送给一个)
  • 部门有消息(给很多人)

部门已经插入到核心数据中。当一条新消息到达时,我将其插入核心数据并添加部门关系,但应用程序崩溃并出现以下错误。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Illegal attempt to establish a relationship 'department' between objects in different contexts

以下是我设置消息对象的代码片段

NSEntityDescription *entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:context];

// find department object from core data.
Department *objDepartment = [self findDepartmentByDepartmentId:dict[kDepartmentId]];
// Create new message object
Message *objMessage = [[Message alloc] initWithEntity:entity insertIntoManagedObjectContext:context];
// *** Establish relation with department ***
if(objDepartment != nil)
{
// app crashes here...
[objMessage setDepartment:objDepartment];
}
[objMessage setLastUpdatedTime:[NSDate date]];
}

// *** Set other values in message object ***

注意:一切都是使用核心数据中的父子上下文完成的。

如有任何建议或帮助,我们将不胜感激。

最佳答案

看起来部门是从不同的上下文中获取的,您需要从相同的上下文中获取部门对象。尝试一下是否有效:

Department *objDepartment = [self findDepartmentByDepartmentId:dict[kDepartmentId]];

// Get department in in current context
NSError *error = nil;
objDepartment = [context objectWithID:objDepartment.objectId error:&error]

关于ios - 核心数据 : Add relation object to existing object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34759004/

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