2011-08-11 46 views
5

Al establecer un tipo de resultado NSFetchRequest en NSDictinaryResultType, se devuelven cero objetos. Si elimino setPropertiesToFetch y setResultType, se devuelven todos los objetos.Datos básicos NSFetchRequest setResultType: NSDictionaryResultType no funciona

¿Alguna idea?

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Alert" inManagedObjectContext:_managedObjectContext]; 
[request setEntity:entity]; 

NSDictionary *entityProperties = [entity propertiesByName]; 
[request setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@"test"]]]; 
[request setResultType:NSDictionaryResultType]; 

NSError *error; 
NSArray *result = [_managedObjectContext executeFetchRequest:request error:&error]; 

if (result == nil) { 
    NSLog(@"Error: %@", [error localizedDescription]); 
} 

Respuesta

10

El problema era que necesitaba guardar mangedObjectContext después de insertar nuevos objetos. Una vez que lo hice, obtuve los resultados que estaba buscando.

+0

Sí, esto es un verdadero Gotcha. Al usar NSDictionaryResultsType, no puede obtener los resultados de los cambios pendientes en el contexto del objeto gestionado. – Aderstedt

Cuestiones relacionadas