iOS Core Data executeFetchRequest devuelve el object vacío

Estoy usando Core Data para almacenar una entidad que incluye un atributo NSDictionary transformable. Puedo ver un object en el file .SQLite después de almacenarlo, así que creo (?) Que estoy bien allí. Sin embargo, cuando trato de recuperar toda la entidad, obtengo un NSArray con un elemento [0] que es nulo y (por supuesto) se bloquea cuando bash acceder a cualquier atributo.

HVBAppDelegate *appDelegate = [[UIApplication shanetworkingApplication] delegate]; NSManagedObjectContext *context = [appDelegate managedObjectContext]; NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Events" inManagedObjectContext:context]; NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; [fetchRequest setEntity:entityDesc]; NSError *error; NSArray *objects = [context executeFetchRequest:fetchRequest error:&error]; // [objects count] = 1 but objects[0] = nil // and the following line crashes of course NSMutableDictionary *data = objects[0][@"data"]; 

¿Alguna idea de lo que estoy haciendo mal? ¡Gracias!

(Tenga en count que he configurado una class de events con la propiedad NSDictionary y otras properties también).

A continuación, explicamos cómo configuro la entidad:

introduzca la descripción de la imagen aquí

Eventos.h:

introduzca la descripción de la imagen aquí

Events.m:

introduzca la descripción de la imagen aquí

Me di count de lo que estaba pasando:

Primero, la razón por la que los "objects" tenían una fila, pero aparecía "vacía" era porque ese es el comportamiento pnetworkingeterminado. Los valores no se recuperarán hasta que usted los solicite específicamente, a less que cambie eso enviando un post setReturnsObjectsAsFaults:

 [fetchRequest setReturnsObjectsAsFaults:NO]; 

Tenga en count que NSLogging el object sin este producido "data:".

En segundo lugar, y lo más importante, "objects" NO es una NSArray de NSDictionarys o NSMutableDictionarys. Entonces, mientras que puedo replace [objects objectAtIndex:0]" with "objects[0] , no puedo replace [objects[0] valueForKey:@"created"] con [objects[0][@"created"] . Eso es lo que causó el crash.

Espero que esto ayude a alguien!

Llame a willAccessValueForKey: antes de acceder a @ "datos"

 [objects[0] willAccessValueForKey:@"data"]; NSMutableDictionary *data = objects[0][@"data"]; [objects[0] didAccessValueForKey:@"data"];