2011-08-11 12 views
5

Podczas ustawiania typu wyniku NSFetchRequest na NSDictinaryResultType zwracane są obiekty zerowe. Jeśli usuniemy setPropertiesToFetch i setResultType, zwrócone zostaną wszystkie obiekty.Dane podstawowe NSFetchRequest setResultType: NSDictionaryResultType nie działa

Wszelkie pomysły?

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]); 
} 

Odpowiedz

10

Problem polegał na tym, że muszę zapisać mangedObjectContext po włożeniu nowych obiektów. Kiedy to zrobiłem, otrzymałem wyniki, których szukałem.

+0

Tak, to jest prawdziwe zmarnowanie. Podczas używania NSDictionaryResultsType nie można uzyskać wyników oczekujących zmian w kontekście obiektu zarządzanego. – Aderstedt

Powiązane problemy