J'ai un NSPredicate
sur mes FRC fetchRequest
. À un certain point un objet est ajouté à CoreData, je crée un nouveau prédicat, mettre à jour le fetchRequest
et accomplissez un ira chercherLa modification de fetchRequest.predicate de NSFetchedResultsController ne déclenche pas de délégué
self.fetchedAddressesController.fetchRequest.predicate = self.predicate;
BOOL success = [self.fetchedAddressesController performFetch:nil];
Cela ne signifie toutefois pas invoquer les méthodes de délégué du CEAF comme controllerWillChangeContent:
. Et ma vue de table n'est pas mise à jour.
Cependant, quand j'ajouter la ligne suivante:
[self.tableView reloadData];
ci-dessous les deux ci-dessus, je ne vois la mise à jour attendue. Cela montre que les données à afficher ont bien changé. J'ai vérifié le nouveau prédicat et tout va bien. J'ai également mis delegate
de FRC à self
, et ses méthodes sont invoquées dans d'autres cas.
Des idées déjà ce qui pourrait être faux?
J'ai consulté cette documentation, mais je ne l'ai pas trouvée facilement en disant que les méthodes de délégué n'étaient pas appelées. Où puis-je trouver ça? Au contraire, je lis: «Suivi de la mémoire uniquement: ... met à jour la section et les informations de commande ...». –
Voir la section "Modification de la requête d'extraction" dans https://developer.apple.com/library/ios/documentation/CoreData/Reference/NSFetchedResultsController_Class/#//apple_ref/doc/uid/TP40008227-CH1-SW23 – Avi