私のアプリケーションには iTunes スタイルのインターフェイスがあります。左側にはさまざまなライブラリとプレイリストを含むソース リスト (NSOutlineView) があり、インターフェイスの右側には "プレゼンテーション" の情報を表示する NSTableView があります。iTunes と同様に、ライブラリまたはプレイリストが選択されているかどうかにかかわらず、テーブル ビューに同じ種類の情報 (タイトル、作成者、作成日など) を表示しています。
現在、NSTableView に接続されている NSArrayController があり、ソース リストで選択された内容に基づいてフェッチ述語を設定していました。プレゼンテーションコア データ エンティティの「タイプ」フィールドでフィルタリングするようにフェッチ述語を設定するだけでよいため、これはライブラリを選択するときにうまく機能します。ただし、プレイリストのフェッチ述語を調整しようとすると、プレイリスト内の順序に追いつくためにプレイリストとプレゼンテーションの間にテーブルがあるため、フェッチ述語を設定する方法がないように見えます。Apple docs によると、これらのタイプの述語は Core Data では実行できません (基本的に複数の内部結合は実行されません)。以下は、私のデータモデルの関連部分です。
データ モデルの設定が間違っていますか? NSArrayController を削除して、NSTableView の接続を手動で処理する必要がありますか? 簡単な修正があるのか、それとも本当に設計上の欠陥があるのか を把握しようとしています.