CoreData petición de recuperación con el predicado más reciente
-
20-09-2019 - |
Pregunta
Tengo un "evento" Entity
que contiene un atributo NSDate
llamado "AccidentDate". Estoy tratando de hacer una solicitud de búsqueda para agarrar sólo el más reciente 'AccidentDate', pero no estoy seguro de cómo configurar el predicado para agarrar sólo el último 'AccidentDate'
A continuación se muestra el código hasta ahora ...
NSFetchRequest *fetchRequest1 = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:self.managedObjectContext];
[fetchRequest1 setEntity:entity];
NSPredicate *predicate; //unknown code here
[fetchRequest1 setPredicate:predicate];
NSArray *items = [self.managedObjectContext executeFetchRequest:fetchRequest1 error:&error];
[fetchRequest1 release];
Cualquier ayuda sería muy apreciada. Gracias
Solución
Se puede aplicar un conjunto de descriptores ordenar directamente a la NSFetchRequest
y se puede establecer aún más su límite de ir a buscar a 1. Esto crea el siguiente código:
NSFetchRequest *fetchRequest1 = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:[self managedObjectContext]];
[fetchRequest1 setEntity:entity];
NSSortDescriptor *dateSort = [[NSSortDescriptor alloc] initWithKey:@"accidentDate" ascending:NO];
[fetchRequest1 setSortDescriptors:[NSArray arrayWithObject:dateSort]];
[dateSort release], dateSort = nil;
[fetchRequest1 setFetchLimit:1];
NSManagedObject *latest = [[[self managedObjectContext] executeFetchRequest:fetchRequest1 error:&error] lastObject];
[fetchRequest1 release], fetchRequest1 = nil;
Otros consejos
Me gustaría ir a buscar todos los partidos ordenados por AccidentDate sin predicado y agarrar el primero de la serie.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow