Core data 将多个关系保存到核心数据时出错
我正试图了解核心数据,并试图实现一种小到多的关系,但我不断发现以下错误: 我有两个NSManagedObject类(组和联系人),它们是由Xcode的数据模型创建的,具有对多关系Core data 将多个关系保存到核心数据时出错,core-data,ios5,Core Data,Ios5,我正试图了解核心数据,并试图实现一种小到多的关系,但我不断发现以下错误: 我有两个NSManagedObject类(组和联系人),它们是由Xcode的数据模型创建的,具有对多关系 @implementation Groups @dynamic groupId; @dynamic groupName; @dynamic groupContacts; @end @implementation Contacts @dynamic firstName; @dynamic lastName; @dyna
@implementation Groups
@dynamic groupId;
@dynamic groupName;
@dynamic groupContacts;
@end
@implementation Contacts
@dynamic firstName;
@dynamic lastName;
@dynamic userId;
@dynamic belongsToGroup;
我将联系人数据作为一组字典,我正在执行以下操作:
self.localGroup = [NSEntityDescription insertNewObjectForEntityForName:@"Groups" inManagedObjectContext:self.scratchPadContext];
self.localGroup.groupName = @"Some Name";
for (int i = 0; i < [self.ContactsData count]; i++) {
Contacts *contact = [NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:self.scratchPadContext];
NSDictionary *obj = (NSDictionary *)[self.ContactsData objectAtIndex:i];
contact.firstName = [obj valueForKey:@"firstName"];
contact.userId = [obj valueForKey:@"email"];
[self.localGroup addGroupContactsObject:contact];
}
if (![self.scratchPadContext save:&error]) {
NSLog(@"Errror saving Group ********************************* %@, %@", error, [error userInfo]);
}
即使我使用的是一个MOC,我也会出现以下错误。我不明白错误在哪里。如果有人能解释一下,我将不胜感激
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Illegal attempt to establish a relationship 'belongsToGroup' between objects in different contexts (source = <Contacts: 0x86926a0> (entity: Contacts; id: 0x8692700 <x-coredata:///Contacts/t2548922E-A0C6-4E3C-9760-3265954764E73> ;
***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“非法尝试在不同上下文中的对象之间建立关系”belongsToGroup”(源=(实体:联系人;id:0x8692700;
在将联系人添加到通话组之前,您是否尝试过保存scratchPadContext
(也就是说,创建localGroup
对象,保存上下文,然后添加联系人,然后再次保存上下文?从错误消息中可以看出,核心数据在发送必要的插入之前,正在向永久存储发送update语句,因此它可能会被绊倒,因为您正在向永久存储写入新的内容的两端-同时与永久存储有许多关系。有人吗?我已经在这方面纠缠了好几天了……如果能给我一些建议,我将不胜感激!!!我需要看看你是如何创建托管对象上下文等。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Illegal attempt to establish a relationship 'belongsToGroup' between objects in different contexts (source = <Contacts: 0x86926a0> (entity: Contacts; id: 0x8692700 <x-coredata:///Contacts/t2548922E-A0C6-4E3C-9760-3265954764E73> ;