J'ai un categoryData et un itemData qui a une relation many to many. Un categoryData peut avoir plus d'un itemData et un itemData peut être dans une ou plusieurs categorieData.CoreData Comment afficher dans UICollectionView en utilisant nsfetchedcontroller
Je dois regrouper les éléments avec quelle catégorie ils se trouvent et afficher une liste de catégories avec les éléments associés. Une categoryData est une section de la vue de collection et une itemData est les éléments de la section.
Exemple
Category1 (section Header)
ItemA, Item B, ItemC (Items At indexPath)
Category2
Item D, Item E, Item A
J'utilise le code suivant pour mettre en place la nsfetchedcontroller pour y parvenir.
+ (void)
getFetchedControllerForCategoryDiscoverDelegate:(id<NSFetchedResultsControllerDelegate>)delegate
completion:(void (^)(NSFetchedResultsController *controller))
completion {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"showInDiscover == YES"];
NSFetchedResultsController *controller = [ItemData MR_fetchAllGroupedBy:@"category.order"
withPredicate:predicate
sortedBy:@"category.order"
ascending:YES
delegate:delegate];
completion(controller);
}
Mais se bloque avec l'application Terminating suivante en raison d'une exception non interceptée « NSInvalidArgumentException », la raison: « à plusieurs clés pas permis ici »
Comment puis-je changer cela pour obtenir à un groupe par catégories et montrer les éléments qui lui sont associés lorsqu'il y a une relation plusieurs à plusieurs?
Je pense que vous devrez peut-être remplacer la relation many-many en ajoutant une entité intermédiaire (peut-être "ItemInstance"). 'CategoryData' et' ItemData' auraient chacun une relation un-plusieurs à 'ItemInstance'. Votre FRC récupèrerait alors les objets 'ItemInstance', triés et groupés par' category.order'. – pbasdf