2012-01-29 7 views

Respuesta

8

Lo que necesita hacer es crear una propiedad transitoria en su objeto de datos, y luego ordenar los resultados obtenidos según corresponda. Para una TVGuide que he trabajado, que necesitaba para ordenar los resultados por airDay, y terminó la clasificación de los eventos por startDate, y el uso de la propiedad transitoria para la llave de sección de ruta de nombre:

En Event.m:

-(NSString*) airDay 
{ 
    NSDateFormatter *dayFormatter=[[NSDateFormatter alloc] init]; 
    [dayFormatter setLocale:[NSLocale currentLocale]]; 
    [dayFormatter setDateStyle: NSDateFormatterMediumStyle]; 
    [dayFormatter setDoesRelativeDateFormatting: YES]; 

    return [dayFormatter stringFromDate:self.startDate]; 
} 

el juego fetchrequest

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:[Database db].managedObjectContext]; 
[fetchRequest setEntity:entity]; 

NSArray *sortDescriptors = [[NSArray alloc] initWithObjects: 
          [NSSortDescriptor sortDescriptorWithKey:@"startDate"   
                 ascending:YES], 
                 nil]; 

[fetchRequest setSortDescriptors:sortDescriptors]; 

NSFetchedResultsController *frc = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest 
                     managedObjectContext:[Database db].managedObjectContext 
                     sectionNameKeyPath:@"airDay" 
                       cacheName:@"SearchEvents"]; 
+0

'cacheName: @" SearchEvents "' ¿Es este un nombre de clase o la entidad o? Recibo errores cuando hago referencia a la entidad. Gracias. –

+1

Simplemente use nil como cacheName en su lugar. En muchos casos, no necesitará suministrar uno –

3

por favor, consulte el código de ejemplo de Apple de "DateSectionTitles", puede buscar esto en la ayuda de Xcode. ¡¡¡ayuda mucho !!

Cuestiones relacionadas