2012-05-09 32 views
0

私はUITabBarから4つのタブを表す4つのUITableViewを持っていました。だから私はそれが表示する必要があるエンティティ(CoreData上)に応じてすべての画面を制御するユニークなカスタムTableViewControllerを持っています。 CoreDataから要素を取得するために、NSFetchedResultsControllerを使用します。2つのエンティティで2つの画面をマージする

しかし、私の問題は、マーケティング上の理由から、同じ画面に2つのエンティティを表示することを意味する2つの画面をマージする必要があるということです。だから私は2つの異なるエンティティから要素を取得する必要があります。私は抽象的なエンティティ "Element"を持っています。これは私のTableViewControllerで抽象的に各エンティティを制御するのに使うSuperClassです。

最適なソリューションは何ですか?

  • 私は2つのエンティティを取得するために私のNSFetchedResultsControllerに伝えることができます私はそれらの2つのエンティティ(2つの実体は少し異なっているため、これは問題です)
  • をマージする私のモデルを書き換える必要がありますか?どうやって ?
  • NSFetchedResultsControllerにElementエンティティを取得し、その後にそれらのエンティティを述語化することはできますか?どうやって ?

ありがとうございます!

答えて

0

最終的に私が提案した解決策は見つかりませんでした。

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

したがって、私のElementListViewControllerはまだ "Elements"を表示し、私はマージされたEntityを自分の画面に表示できます。

私は現在、古いモデルを新しいモデルに移行しようとしています。

この記事は、最初のソリューションに役立つ一日...

0

3つのうちの最良の解決策は、正しい述語を持つ要素エンティティをフェッチすることです。 NSfetchRequestは1つのエンティティのみをフェッチすることができます。

私は、あなたのマーケティングのニーズを満たす別のアプローチも検討します。 2つの異なるフェッチを実行して、結果を結合するだけでもかまいません。

+0

してもよいし、どのようにあなただけのSubElementAとSubElementBを取るためにあなたの述語に教えていますか?述語に「kindOf」はありますか? – THClem

+0

私は知っているわけではありませんが、エンティティが異なるので、それらを区別するために活用することができます.. –

関連する問題