0

UITabBar の 4 つのタブを表す 4 つの UITableView がありました。そのため、表示するエンティティ (CoreData 上) に応じてすべての画面を制御する独自のカスタム TableViewController があります。CoreData から要素をフェッチするために、NSFetchedResultsController を使用します。

しかし、私の問題は、マーケティング上の理由から、同じ画面に 2 つのエンティティを表示することを意味する 2 つの画面をマージする必要があることです。したがって、2 つの異なるエンティティから要素をフェッチする必要があります。また、各エンティティを抽象的に制御するために TableViewController で使用するスーパークラスである抽象エンティティ「要素」もあります。

最善の解決策は何ですか?

  • これらの 2 つのエンティティをマージするためにモデルを書き直す必要がありますか (2 つのエンティティが少し異なるため、これは問題です)
  • NSFetchedResultsController に 2 つのエンティティをフェッチするように指示できますか? どのように ?
  • NSFetchedResultsController に Element エンティティを取得し、その後それらの Entities を述語するように指示できますか? どのように ?

前もって感謝します !

4

2 に答える 2

0

私はついに私が提案しなかった解決策を見つけました。

マージしたい2のスーパークラスであるが、「要素」の子でもある新しい抽象エンティティを追加しました。

したがって、ElementListViewControllerには引き続き「Elements」が表示され、画面にマージされたエンティティを表示できます。

現在、古いモデルから新しいモデルへの移行に取り組んでいます。

この投稿がいつかお役に立てば幸いです...

于 2012-05-14T11:45:09.223 に答える
0

3 つのうちの最善の解決策は、正しい述語を使用して Element エンティティを取得することです。NSfetchRequest は 1 つのエンティティのみをフェッチできます。

また、マーケティングのニーズを満たす別のアプローチも検討します。2 つの異なるフェッチを実行するだけで、結果を組み合わせることができます。

于 2012-05-09T09:47:04.667 に答える