Mam podstawową aplikację opartą na danych, która zarządza grupą obiektów. Szukam, aby móc wykonać następujące czynności.Wywoływanie unikalnego zestawu wyników z danymi podstawowymi
Posiadam encję "SomeEntity" z atrybutami: name, type, rank, foo1, foo2.
Teraz SomeEntity ma kilka wierszy, jeśli mówimy ściśle w kategoriach SQL. Próbuję osiągnąć tylko dostępne typy, mimo że każda instancja może mieć zduplikowane typy. Też potrzebuję ich wracam w kolejności według rangi. Więc w SQL, co szukam jest następujący:
SELECT DISTINCT(type) ORDER BY rank ASC
Oto kod mam tak daleko, że łamie:
NSError *error = NULL;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setReturnsDistinctResults:YES];
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:@"type", @"rank", nil]];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"SomeEntity" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
// sort by rank
NSSortDescriptor *rankDescriptor = [[NSSortDescriptor alloc] initWithKey:@"rank" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:rankDescriptor,nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[rankDescriptor release];
NSArray *fetchResults = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
[fetchRequest release];
return fetchResults;
Teraz, że jest upaść z następujących powodów: Invalid keypath section passed to setPropertiesToFetch:
Zaktualizowany przykład. Wystąpił błąd w usłudze Właściwości, aby pobrać –
. Jeśli określisz właściwości, które chcesz pobrać @ "type" i @ "rank", uzyskasz odrębność w obu usługach. Powinieneś podać tylko @ właściwość typu " –