Próbuję uzyskać wyraźny wynik z NSPredicate.NSFetchRequest z różnymi właściwościami
Mój kod:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Members" inManagedObjectContext:context];
request.entity = entity;
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"city"
ascending:YES
selector:@selector(caseInsensitiveCompare:)]];
request.predicate = [NSPredicate predicateWithFormat:@"memberDeleted == %@", [NSNumber numberWithBool:NO]];
NSDictionary *properties = [entity propertiesByName];
request.propertiesToFetch = [NSArray arrayWithObject:[properties objectForKey:@"city"]];
request.returnsDistinctResults = YES;
request.fetchBatchSize = 20;
NSFetchedResultsController *frc = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:context
sectionNameKeyPath:nil
cacheName:@"CityCache"];
[request release];
self.fetchedResultsController = frc;
[frc release];
Problem jest, że wynik powraca wiele razy w tym samym mieście. Ten podmiot ma wielu członków, a każdy poseł ma właściwość "miasto".
Co robię źle?
Dzięki
RL
powinienem chyba dodawać, że 'NSFetchedResultsController' generalnie nie jest fanem' NSDictionaryResultType'. Możesz napotkać inne problemy i zrezygnować z 'NSFetchedResultsController'. – Alex
Pytanie brzmi, że nie chcę, aby wynik był i NSDictionary. Jeśli nie, będę musiał zmienić część mojego kodu. Czy można to zrobić inaczej? –
Jakiego obiektu oczekujesz, że powróci? Dane podstawowe mogą tylko zwracać obiekty, które faktycznie istnieją na wykresie obiektu. – Alex