Comment couper correctement le graphe d'object introduit par NSFetchedResultsController?

Sans cycles de reference, NSFetchedResultsController peut NSFetchedResultsController transformer ses objects gérés en erreur lorsqu'ils ne sont pas nécessaires. Mais avec des cycles de reference, ce n'est pas le cas, donc je dois redéfinir ces objects moi-même. Toutefois, la re-gestion manuelle des objects gérés par NSFetchedResultsController est dangereuse . Donc, je veux savoir ce que Core Data experts de Core Data pensent est la meilleure façon de couper le graphe d'objects introduit par NSFetchedResultsController . Merci.

Mettre à jour:

Je crois que normalement FRC devrait être en mesure de re-fault des objects, même avec des cycles de reference. J'ai l'printing que ce n'est pas à cause d'un vieux bug que j'ai rapporté à Apple en 2012 dont l'état est toujours ouvert: FRC ne re-fausse jamais les objects nouvellement insérés (après sauvegarde), donc je dois les rerequestr manuellement. Voici mon projet de test: http://d.pr/f/Ohe3 .

Comme je l'ai mentionné dans mes commentaires ICI , la FRC est responsable de la faute ou de la faute sur les objects qu'elle a récupérés.
Qui à son tour briser les cycles de reference forts entre vos objects gérés.

Vous pouvez tester cela en définissant un point d'arrêt dans la méthode willTurnIntoFault vos objects lorsque vous willTurnIntoFault défiler une table suffisamment grande.

Ceci est fait sans égard à ce que d'autres objects referencent ces objects récupérés (pour autant que je sache).

Je pense que vous devriez simplement éviter les cycles de reference forts. Habituellement, il n'y a aucune raison impérieuse d'avoir à traiter le problème que vous décrivez.

Pour une discussion détaillée, voir le chapitre sur les données encapsulantes d'Apple du guide Programmation avec Objective-C où vous findez une section intitulée Éviter les cycles de reference forts .