Я пытаюсь разобраться с основными данными, и я пытаюсь реализовать небольшое отношение ко многим, но я продолжаю получать ошибку ниже:
У меня есть два класса NSManagedObject (Группы и Контакты)созданный моделью данных Xcode с отношением ко многим.
@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]);
}
Я получаю следующую ошибку:
[4459: 15503] Группа спасения от ошибок ***************** Ошибка домена = NSCocoaErrorDomain Code = 134030 "Операция не может быть завершена. (Ошибка какао 134030.)" UserInfo = 0x85e0ab0 {NSActedObjectsErrorKey = ("(entity:Groups; id: 0x838d020; data: {\ n groupContacts = nil; \ n groupId = 0; \ n groupName = Some Name; \ n}) "), NSUnderlyingException = Невозможно обновить объект, который никогда не был вставлен.}, {NSActedObjectsErrorKey =("(объект: Группы; id: 0x838d020; данные: {\ n groupContacts = nil; \ n groupId = 0; \ n groupName = Some Name; \ n})");NSUnderlyingException = "Невозможно обновить объект, который никогда не был вставлен.";}
Если я закомментирую часть отношений и просто сохраню имя группы, она будет работать нормально.Итак, я предполагаю, что проблема связана с данными отношений, но я не могу понять, что.Может ли кто-нибудь указать мне, где я мог бы сделать это неправильно?
[РЕДАКТИРОВАТЬ]:
Когда я добавляю
contact.belongsToGroup = self.localGroup;
, я получаю следующую ошибку, хотя яЯ использую один 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> ;