2015-03-11 1 views
0

J'utilise NSFetchResultController pour afficher les données dans UICollectionView à partir des données de base. UICollectionViewCell contient une vue de table. donc en bref, il y a une très grande quantité de données montrant que UITableView. Je montre NSFetchResultController pour montrer aussi des données dans ce tableau. Maintenant le problème est quand je fais défiler UICollectionView il charge des données de la base de données pour montrer dans UITableView. comme la quantité de données est grande, le défilement de UICollectionView est très instable. Toute aide Je pensais que je devrais déplacer la demande de récupération de fil de fond mais commencer à s'écraser l'application et de donner expectionComment charger des données volumineuses à partir de NSFetchResultController dans le thread d'arrière-plan

Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSSetM: 0x15722f80> was mutated while being enumerated.' 
+0

Je vous suggère de votre description actuelle vous avez un certain nombre de problèmes à régler. Ai-je raison de comprendre que vous avez un UITableView intégré dans chaque vue de collection? Si c'est le cas, je vous recommande de contrôler la quantité de données que votre FRC récupère pour chaque vue de la table, peut-être le double de ce qui peut être affiché dans l'espace de vue de la table. Ensuite, travaillez sur l'installation d'un déclencheur pour chaque vue de collection qui, lorsqu'elle est sélectionnée/sélectionnée, effectue une autre extraction pour toutes les données de cette vue de table. Aussi, je vous recommande de lire sur la façon d'effectuer des récupérations efficaces - Core Data, 2ème édition par Marcus S Zarra – andrewbuilder

+0

Et votre erreur est liée au fait que vous ne pouvez pas muter/modifier un NSMutableSet lors de l'énumération. – andrewbuilder

Répondre

0

Je pense que @ Andrew est juste, le problème est dans votre tableau assurez-vous que votre tableau ou tout Datalist contrôle que vous avez utilisé pour cela doit être mutable, juste mutable cela va résoudre votre problème.

voir ci-dessous répondre comme même question que vous demandez.

Collection was mutated while being enumerated error in objective C