Tengo una aplicación basada en datos básicos que administra un grupo de entidades. Estoy buscando poder hacer lo siguiente.Recuperación de un único conjunto de resultados con Core Data
Tengo una entidad "SomeEntity" con los atributos: nombre, tipo, rango, foo1, foo2.
Ahora, SomeEntity tiene varias filas si hablamos estrictamente en términos de SQL. Lo que intento lograr es recuperar solo los tipos disponibles, aunque cada instancia puede tener tipos duplicados. También los necesito devueltos en orden según el rango. Así que en SQL, lo que estoy buscando es la siguiente:
SELECT DISTINCT(type) ORDER BY rank ASC
Aquí está el código que tengo hasta ahora que está rompiendo:
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;
Ahora que está chocando con lo siguiente: Invalid keypath section passed to setPropertiesToFetch:
Ejemplo actualizado. Hubo un error en Propiedades para obtener –
Y si especifica propiedades para obtener @ "tipo" y @ "rango", obtendrá distintas propiedades. Debe especificar solo la propiedad @ "tipo" –