基本的に、3つの異なるCore Dataエンティティ(、、A
)がありB
、 sのセットとsのセットが含まれています。ただし、これら3つのエンティティは互いにまったく異なり、互いの子にアクセスするための一般的な方法や、ビューに表示される値はありません。C
A
B
B
C
これらの3つのエンティティをNSOutlineViewに表示しようとしています。おそらく他の解決策もありますが、私は2つの異なる解決策を思いつきました:
NSOutlineViewDataSourceプロトコルを実装し、各エンティティを異なる方法で処理します。
クラスをカテゴリに統合し、NSOutlineViewが使用する一般的な(一時的な)メソッド/プロパティを追加します。これらのメソッド/プロパティは、モデルエンティティのプロパティから実際の値を取得します。
2番目のオプションを選択し、子のゲッターと表示値を追加しました。ただし、この方法では、Key-Value監視は機能しなくなり、モデルの変更はビューに反映されません。理由はわかりますが、これを正しい方法で解決する方法がわかりません。実際のモデル値の変更を通知してビューに転送する方法を考えていました。
これらの通知を転送する簡単な方法はありますか、それとも他の方法を検討する必要がありますか?
つまり、NSOutlineViewにさまざまな種類のエンティティを表示する必要があり、モデルを台無しにしたくありません。