NSFetchedResultsController atualizando com o tipo de atualização incorreto
Por favor, veja os comentários antes de votar cegamente como uma duplicata. Não é uma questão duplicada.
Primeiro - estou usandoMagicalRecord
para dados principais. Segundo - meuUICollectionView
é preenchido com umNSFetchedResultsController
.
oNSPredicate
para oNSFetchedResultsController
é ...
NSPredicate *eventPredicate = [NSPredicate predicateWithFormat:@"event = %@", self.event];
NSPredicate *deletedPredicate = [NSPredicate predicateWithFormat:@"deleted == NO"];
NSPredicate *compoundPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[eventPredicate, deletedPredicate]];
Quando adiciono novos itens ao CoreData usando o Magical RecordsaveWithBlock
acollectionView
atualiza corretamente e anima as alterações na exibição.
O problema é que quando eu altero o valor de deletado para @YES ...
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
Photo *photo = [[self photoAtIndexPath:[self.collectionView indexPathForCell:cell]] inContext:localContext];
photo.deleted = @YES;
}];
Então oNSFetchedResultsController
Delegar métodos de fogo, exceto que ele é acionado com o tipo de mudançaNSFetchedResultsChangeUpdate
. Isto não é o que deveria ser. Deveria serNSFetchedResultsChangeDelete
como alterar o valor de excluído deve removê-lo da solicitação de busca.
Não quero apenas excluir o objeto, pois preciso atualizar um servidor com o ID excluído.
Além disso, se eu estourar a visualização e empurrá-la novamente, a foto desaparecerá, então sei que ela está sendo atualizada corretamente e sei que ela está sendo removida da solicitação de busca.
Alguma ideia?