NSPredicate faz com que a edição de atualização retorne NSFetchedResultsChangeDelete não NSFetchedResultsChangeUpdate
Eu tenho predicado dentro de- (NSFetchedResultsController *)fetchedResultsController
de maneira padrão a partir do exemplo CoreDataBook.
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"state=%@ && date >= %@ && date < %@", @"1",fromDate,toDate];
[fetchRequest setPredicate:predicate];
Isso funciona bem, no entanto, ao editar um item, ele retorna com NSFetchedResultsChangeDelete not Update. Quando a vista principal retorna, está faltando o item. Se eu reiniciar o simulador, a exclusão não foi salva e o resultado correto da edição é mostrado, o predicado está funcionando corretamente.
case NSFetchedResultsChangeDelete:
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
Posso confirmar o comportamento comentando SOMENTE as duas linhas de predicado e, em seguida, tudo funciona como deveria retornar corretamente com o conjunto completo após editar e chamar NSFetchedResultsChangeUpdate em vez de NSFetchedResultsChangeDelete.
eu lihttp://matteocaldari.it/2009/11/multiple-contexts-controllers-delegates-and-coredata-bug que relata comportamento semelhante, mas não encontrei uma solução alternativa para o meu problema.