J'utilise Core Data et KVO pour rechercher des changements de valeurs afin de déclencher des sauvegardes dans le magasin de données. J'ai une vue de table avec la recherche accrochée à NSFetchedResultsController
. Lorsque la recherche change, un nouveau contrôleur de résultats est créé en appuyant sur le bouton Rechercher. Lorsque l'utilisateur sélectionne un élément dans la vue de la table des résultats, l'utilisateur entre une vue détaillée et peut apporter des modifications.Core Data, KVO et NSInternalInconsistencyException
C'est là que je rencontre les problèmes. Lorsque l'utilisateur effectue une modification dans un contrôle UIControl distinct que j'ai fait, la vue détaillée est notifiée et peut utiliser le NSFetchedResultsController
il se souvient de quand la vue de table m'a poussé sur la pile de vue pour obtenir le NSManagedObjectContext
et faire un enregistrement. Quand je le fais, je reçois parfois l'erreur suivante:
Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. no object at index 89 in section at index 0 with userInfo (null)
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'no object at index 89 in section at index 0'
Je trouve que cela a tendance à se produire lorsque je fais une recherche et un objet qui ne sont pas sur le dessus de la table est déplacée au sommet . Je sais vaguement ce qui pourrait être mal à l'arrière de la tête, mais j'apprécierais tous les conseils sur la façon de résoudre ce problème.
Heureux de vous voir résolu le problème. Ce problème est assez commun et facile à oublier :) –