Se perdió la relación de datos principales después de get más objects en las entidades

Tengo un model de datos central que se parece a esto.

introduzca la descripción de la imagen aquí

Dentro de una vista de tabla cargo todas mis citas. En un UILabel dentro de mi custom cell , establezco el nombre de location de las citas de la siguiente manera.

 NSString *info = appointment.location.label_vrij; 

Al principio todo funciona Oké, pero cuando carga más citas en mi database . Todas las cadenas de información son NULL . Después de una debugging me di count de que también appointment.location devuelve NULL .

Así es como se ve mi NSFetchRequest

 RKManagedObjectStore *store = [[SanMaxDataModel shanetworkingDataModel] objectStore]; NSManagedObjectContext *context = store.mainQueueManagedObjectContext; NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Appointment"]; NSString *relationshipKeyPath = @"location"; // Set this to the name of the relationship on "A" that points to the "B" objects; NSArray *keyPaths = [NSArray arrayWithObject:relationshipKeyPath]; [fetchRequest setRelationshipKeyPathsForPrefetching:keyPaths]; NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"dateStart" ascending:YES]; fetchRequest.sortDescriptors = @[descriptor]; NSPnetworkingicate *pnetworkingicate = [NSPnetworkingicate pnetworkingicateWithFormat: @"tijd_dag = %@",strDate]; [fetchRequest setPnetworkingicate:pnetworkingicate]; NSArray *matches = [context executeFetchRequest:fetchRequest error:nil]; appointments = [matches mutableCopy]; 

Entonces, ¿creo que mi relación está en mal estado?

EDITAR

Estoy usando Restkit para mapear mis citas en mi database central. De los comentarios a continuación, decidí desactivar el indicador de opción del atributo de location dentro de la entidad de la cita. Porque una cita siempre debe tener una location.

Ahora cuando carga el primer día. Todo funciona bien. Pero cuando trato de cargar al día siguiente, obtengo el error: The operation couldn\U2019t be completed. (Cocoa error 1570.) The operation couldn\U2019t be completed. (Cocoa error 1570.) Ahora, cuando miro el error detallado

 DetailedError: { NSLocalizedDescription = "The operation couldn\U2019t be completed. (Cocoa error 1570.)"; NSValidationErrorKey = location; NSValidationErrorObject = "<Appointment: 0x864e2f0> (entity: Appointment; id: 0x9272c70 <x-conetworkingata://9692683D-3077-4362-9253-652AC5B36444/Appointment/p9> ; data: {\n autouur = 1;\n breekuur = 0;\n data1 = \"\";\n data2 = \"\";\n data3 = \"\";\n data4 = \"\";\n data5 = \"\";\n data6 = \"\";\n data7 = \"\";\n data8 = \"\";\n data9 = \"\";\n dateStart = \"2013-10-23 09:00:00 +0000\";\n dateStop = \"2013-10-23 09:30:00 +0000\";\n duration = 30;\n email = \"\";\n entryID = 774294984959;\n info = \"\";\n \"is_blocked\" = 0;\n \"is_except\" = 0;\n \"is_free\" = 1;\n \"is_moved\" = 0;\n \"is_vert\" = 0;\n locatieID = 773150;\n location = nil;\n multiID = nil;\n serverEntryID = 774294984959;\n serverLocatieID = 773150;\n sms = \"\";\n \"tijd_dag\" = 20131023;\n \"tijd_uur\" = 900;\n})"; } 

Así es como cargué el JSON en datos centrales

 -(void)getAppointmentsForDate:(NSString *)date forUserID:(NSString *)userID{ API *api = [API new]; RKManagedObjectStore *store = [[SanMaxDataModel shanetworkingDataModel] objectStore]; NSLog(@"store is %@",store); NSManagedObjectContext *context = store.mainQueueManagedObjectContext; RKObjectManager *objectManager = [api mapAppointments]; NSString *urlString = [NSString stringWithFormat:@"/doctor/1.0/json/nl/appointments/get-by-date/apikey/%@?uid=%@&date=%@",APIKey,userID,date]; // NSString *urlString = [NSString stringWithFormat:@"/doctor/1.0/json/nl/appointments/get-by-date/apikey/%@?uid=77382&date=%@",APIKey,date]; NSURLRequest *request = [objectManager requestWithObject:nil method:RKRequestMethodGET path:urlString parameters:nil]; RKManagedObjectRequestOperation *operation = [objectManager managedObjectRequestOperationWithRequest:request managedObjectContext:context success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { NSLog(@"TILL HERE IN METHOD"); NSError *error = nil; [[NSNotificationCenter defaultCenter] postNotificationName:@"appointmentsLoaded" object:self]; [[SanMaxDataModel shanetworkingDataModel] saveToPersistentStoreAsync:&error]; } failure:^(RKObjectRequestOperation *operation, NSError *error) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; NSLog(@"Hit error: %@", error); }]; [objectManager enqueueObjectRequestOperation:operation]; } 

Parece que su problema es que, de forma pnetworkingeterminada, RestKit reemplaza los contenidos de las relaciones cuando se realiza una nueva asignación. Necesita decirle que desea que los nuevos datos de relación con el anterior. Haga esto estableciendo:

 relationshipMapping.assignmentPolicy = RKAssignmentPolicyUnion; 

Si está utilizando una versión anterior de RestKit, necesitará usar RKUnionAssignmentPolicy .

Donde relationshipMapping es su instancia de RKRelationshipMapping .