Tengo una base de datos Core Data creada utilizando un UIManagedDocument que cargo en un UITableView
y también tramo ciertos puntos de esos datos en un gráfico. Encuentro que cuando agrego un objeto a la base de datos o elimino un objeto de la base de datos y luego obtengo los datos, la matriz que devuelve NSFetchRequest
no está ordenada, aunque tengo un descriptor de clasificación en la solicitud. La parte interesante es que si espero unos segundos y luego obtengo/vuelvo a buscar los datos, ahora vuelven a clasificarse. Creo que debo estar haciendo algo mal. ¿Hay algún tipo de devolución de llamada que debería utilizar de Core Data para saber que el cambio de la base de datos se completó? Es extraño porque todos los datos están siempre en la base de datos, simplemente no ordenados. No tengo mucha experiencia con eso, así que no estoy seguro.Datos básicos NSFetchRequest devuelve matriz sin clasificar después de eliminar el objeto y volver a recopilar los datos
Aquí está el código de mi solicitud de búsqueda:
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"FuelPurchase"];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateTimeStamp" ascending:YES];
request.sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSError *error = nil;
[self.fuelPurchaseDatabase.managedObjectContext executeFetchRequest:request error:&error];
Intente guardar el contexto entre la eliminación y la recuperación. – Costique
Estoy guardando justo después de la llamada de eliminación en mi método commitEditingStyle :. He descubierto que si agrego un objeto a la base de datos y traté de graficarlo demasiado rápido, ocurre el mismo problema donde no está ordenado. – Jamie
¿Reutilizas el objeto 'NSFetchRequest' cuando recuperas? Parece un problema de almacenamiento en caché. – Costique