2012-02-12 13 views
6

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]; 
+1

Intente guardar el contexto entre la eliminación y la recuperación. – Costique

+0

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

+0

¿Reutilizas el objeto 'NSFetchRequest' cuando recuperas? Parece un problema de almacenamiento en caché. – Costique

Respuesta

0

¿Está utilizando controllerDidChangeContent: devolución de llamada?

Quizás use esto para actualizar su vista en lugar de hacerlo procesalmente después de guardar su contexto.

+0

Puedo probar esto, pero también si agrego un objeto a la base de datos incluso antes de configurar un FetchedResultsController (en una vista diferente) y cargar la tabla y el gráfico demasiado rápido, tampoco está ordenado. – Jamie

Cuestiones relacionadas