angezeigt werden Ich habe eine categoryData und eine itemData, die eine Beziehung von vielen zu vielen hat. Ein categoryData kann mehr als ein itemData und ein itemData kann in einem oder mehreren categorieDatas sein.CoreData Wie in UICollectionView mit nsfetchedcontroller
Ich muss die Elemente gruppieren, in denen sie sich befinden, und eine Liste von Kategorien mit den zugehörigen Elementen anzeigen. Ein categoryData ist ein Abschnitt in der Sammlungsansicht und ein itemData ist die Elemente in dem Abschnitt.
Beispiel
Category1 (section Header)
ItemA, Item B, ItemC (Items At indexPath)
Category2
Item D, Item E, Item A
ich den folgenden Code bin mit dem nsfetchedcontroller einzurichten, dies zu erreichen.
+ (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);
}
Aber dies wird mit der folgenden Terminating app aufgrund nicht abgefangene Ausnahme ‚NSInvalidArgumentException‘, Grund abstürzt: ‚zu viele Schlüssel hier nicht erlaubt‘
Wie kann ich dies änderte es zu einer Gruppe zu erhalten, indem Kategorien und zeigen Elemente zugeordnet, wenn es eine Beziehung von vielen zu vielen gibt?
Ich denke, dass Sie die Viele-Viele-Beziehung möglicherweise ersetzen müssen, indem Sie eine Zwischeneinheit hinzufügen (vielleicht "ItemInstance"). 'CategoryData' und' ItemData' würden jeweils eine Eins-Viele-Beziehung zu 'ItemInstance' haben. Ihr FRC würde dann die ItemInstance-Objekte abrufen, sortiert und gruppiert nach 'category.order'. – pbasdf