2011-10-24 4 views
1

Il semble que controllerDidChangeContent: est appelé dès que je crée un nouvel objet géré dans mon contexte. La documentation semble suggérer que cette méthode n'est appelée qu'une fois que vous enregistrez: le contexte. Ce "bogue", s'il en est un, provoque le crash de mon application car dans ma cellule de vue de table, j'ai besoin de charger d'autres objets gérés qui n'existent pas au moment de la création de l'objet géré principal.Core Data - Bogue NSFetchedResultsController

Quelqu'un semble avoir repéré cela aussi, s'il vous plaît consulter le lien suivant et j'aimerais entendre vos opinions sur ce point: http://openradar.appspot.com/10207615


Plus d'informations

Bien que le lien I ajouté à ce poste présente un exemple utilisant deux NSManagedObjectContext, mon application utilise un contexte, mais le controllerDidChangeContent: est envoyé un message dès qu'un objet est créé dans le seul et unique contexte, et controllerDidChangeContent: est appelé un se moment où je sauvegarde: ce contexte. Je crois comprendre que cette méthode ne devrait être envoyée que lorsque le contexte est sauvegardé.

+1

Avez-vous vérifié en parcourant le code avec des points d'arrêt? – Mundi

+0

Oui je l'ai fait et dès qu'un morceau de code qui crée un objet géré a été exécuté, controllerDidChangeContent: est en cours de messagerie. Jetez un oeil sur le lien, il démontre ce problème. – Daniel

Répondre

1

La solution est d'éviter de gérer plus d'un managedObjectContext. Si votre cellule doit charger d'autres objets gérés, elle doit toujours utiliser le même contexte d'objet géré que l'objet géré principal.

Je n'ai pas encore vu un cas d'utilisation où il est absolument inévitable d'utiliser plus d'un contexte d'objet géré se référant au même modèle actif en même temps.

+0

Salut Mundi, Je n'utilise actuellement qu'un contexte dans mon application, créé dans le délégué de l'application et transmis via des références. J'ai mis à jour le poste en conséquence. – Daniel