Actualización de NSFetchedResultsController con un tipo de actualización incorrecto
Por favor, vea los comentarios antes de votar a ciegas como un duplicado. No es una pregunta duplicada.
Primero - estoy usandoMagicalRecord
para los datos básicos. Segundo - miUICollectionView
se rellena con unaNSFetchedResultsController
.
losNSPredicate
Para elNSFetchedResultsController
es ...
NSPredicate *eventPredicate = [NSPredicate predicateWithFormat:@"event = %@", self.event];
NSPredicate *deletedPredicate = [NSPredicate predicateWithFormat:@"deleted == NO"];
NSPredicate *compoundPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[eventPredicate, deletedPredicate]];
Cuando agrego nuevos elementos a CoreData usando Magical Record'ssaveWithBlock
lacollectionView
se actualiza correctamente y anima los cambios a la vista.
El problema es que cuando cambio el valor de eliminado a @YES ...
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
Photo *photo = [[self photoAtIndexPath:[self.collectionView indexPathForCell:cell]] inContext:localContext];
photo.deleted = @YES;
}];
Entonces elNSFetchedResultsController
Métodos de delegación de fuego, excepto que se dispara con el tipo de cambio.NSFetchedResultsChangeUpdate
. Esto no es lo que debería ser sin embargo. Debería serNSFetchedResultsChangeDelete
como cambiar el valor de borrado debería eliminarlo de la solicitud de recuperación.
No quiero simplemente eliminar el objeto, ya que necesito actualizar un servidor con la ID eliminada.
Además, si luego abro la vista y la vuelvo a insertar, la foto desaparece, así que sé que la está actualizando correctamente y sé que la está eliminando de la solicitud de recuperación.
¿Algunas ideas?