Pregunta

Yo uso coredata con este diseño

enter image description here

Ahora me gustaría mostrar una mesa con la cave.title como filas ordenadas en la región. Región como sección. Con el siguiente código muestra las secciones y las filas correctamente. El único problema es que el orden no es correcto. Las filas debajo de las secciones no pertenecen a esa sección.

NSManagedObjectContext *context = country.managedObjectContext;

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    request.entity = [NSEntityDescription entityForName:@"Cave" inManagedObjectContext:context];
    request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES]];
    request.predicate = [NSPredicate predicateWithFormat:@"country = %@", country];
    request.fetchBatchSize = 20;

    NSFetchedResultsController *frc = [[NSFetchedResultsController alloc]
                                       initWithFetchRequest:request
                                       managedObjectContext:context
                                       sectionNameKeyPath:@"region.region"
                                       cacheName:nil];

    [request release];

    self.fetchedResultsController = frc;

¿No estoy seguro de qué parte del TableViewController debo mostrarle?

enter image description here

"Bätterich" debería estar en "otros" y "Pertusio Acquacalda" debería estar en "Ticino". He verificado el archivo SQL de Core Data y las referencias están allí.

¿Fue útil?

Solución

Resolvió el problema utilizando los siguientes sortdescriptors

NSSortDescriptor *sortDescriptorRegion = [[NSSortDescriptor alloc] initWithKey:@"region.region" ascending:YES];
NSSortDescriptor *sortDescriptorCave = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptorRegion, sortDescriptorCave, nil];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top