3

J'ai un NSFetchedResultsController qui affiche une liste d'éléments dans une vue tabulaire, y compris le nombre d'une entité associée. Lorsqu'un objet est ajouté pour cette association (à l'aide de addXXXObject), aucun callback n'est appelé pour avertir mon contrôleur de la mise à jour.Force la mise à jour de NSFetchedResultsController lorsque le nombre d'associations change

Comment puis-je recevoir une notification d'un objet ajouté au NSSet de l'entité parente, ou sinon forcer le contrôleur de résultats récupéré à se mettre à jour? Pour être clair, je récupère actuellement le nombre en utilisant parent.children.count, qui peut être sous-optimal. Y a-t-il une meilleure façon d'aborder tout cela? Il s'agit essentiellement d'un écran comme l'application iPhone Mail, avec des dossiers affichant le nombre de messages à l'intérieur.

Répondre

0

Mon modèle est un peu différent, mais il peut facilement être traduit en un.
J'ai obtenu une structure arborescente:

  • Élément
    • titre
    • parent (à un)
  • Dossier: Élément
    • enfants (à plusieurs)
  • Fichier: Element

Lorsqu'un fichier est ajouté ou supprimé, seul le premier dossier de la file d'attente est averti de cette modification. Lorsque le titre d'un fichier change, aucun dossier ne sera notifié. Alors que faire?
J'ai essayé de remplacer -willChangeValueForKey: et -didChangeValueForKey: dans ma classe Element. Fondamentalement, ce que cela fait est de forcer le dossier parent à mettre à jour car l'un de ses enfants a changé.
J'espère que cela fonctionne pour vous aussi.