J'ai une interface de style iTunes dans mon application: Liste de sources (NSOutlineView) sur la gauche qui contient différentes bibliothèques et listes de lecture avec un NSTableView sur le côté droit de l'interface affichant des informations pour "Présentations". Similaire à iTunes, je montre le même type d'information dans la vue de table si une bibliothèque ou une liste de lecture est choisie (titre, auteur, date créée, etc.).Comment lier une liste de sources de style iTunes à un NSTableView en utilisant des données de base?
J'ai actuellement un NSArrayController connecté à mon NSTableView et mettait le prédicat d'extraction en fonction de ce qui a été sélectionné dans la liste des sources. Cela fonctionne très bien lors de la sélection d'une bibliothèque car je peux simplement définir le prédicat d'extraction à filtrer par le champ "type" dans mon Présentation Entité de données de base. Lorsque j'essaie d'ajuster le prédicat d'extraction pour la playlist, cependant, il ne semble pas possible de définir le prédicat d'extraction, car j'ai une table entre Playlists et Presentations pour suivre l'ordre dans la Playlist. Selon les docs d'Apple, ces types de prédicats ne sont pas réalisables avec les Core Data (il ne s'agit pas de plusieurs jointures internes). Voici la partie pertinente de mon modèle de données.
Est-ce ma configuration de modèle de données de façon incorrecte? Dois-je supprimer le NSArrayController et gérer la connexion de NSTableView à la main? J'essaye de comprendre s'il y a une correction simple, ou vraiment un défaut de conception.