24

私は iPhone アプリに取り組んでおり、特定のビューで 2 つの異なるエンティティを読み込む必要がありUITableViewますUITextView

単一の を使用して両方のプロパティを取得することは可能NSFetchedResultsControllerですか?

または、2 つの異なる を使用する必要がありNSFetchedResultsControllerますか?

この問題に最善のアプローチをするためのアイデアはありますか?

4

4 に答える 4

14

各フェッチ要求にはエンティティが 1 つだけあり、フェッチされた各結果コントローラーにはフェッチが 1 つだけあります。したがって、エンティティごとに個別のコントローラーが必要です。

考えてみると、論理的に分離された 2 つのエンティティを取得するための述語をどのように作成しますか?

おそらく、2 つのフェッチはまったく必要ありません。ほとんどの場合、テーブルに入力するエンティティをフェッチし、選択した行のエンティティの関係を使用して、テキスト ビューのようなものを入力できます。

于 2010-06-30T13:35:49.987 に答える
7

TechZen が述べたように、答えはノーです。

ただし、NSManagedObjectContext自分自身の保存を監視し、それらの保存に反応することはできます。複数のエンティティ (iPhone よりも iPad ではるかに一般的なもの) を実際に監視する必要がある場合は、 にNSNotificationオブザーバーを追加し、返された のをNSManagedObjectContextDidSaveNotification確認します。次に、結果に対して述語を実行して、表示を更新する必要があるかどうかを判断できます。それが、カバーの下で行われていることです。-userInfoNSNotificationNSFetchedResultsController

于 2010-06-30T18:37:34.900 に答える
7

最善の解決策は、モデルをリファクタリングし、2 つのエンティティに共通点があるかどうかを確認することです。交差するものの抽象的なエンティティを作成し、そこから 2 つのエンティティを継承できます。抽象エンティティでフェッチを実行すると、フェッチ結果コントローラーは混合結果を返す必要があります。

于 2014-07-23T10:37:12.013 に答える
1
The quick answer is NO. But I found a creative answer.

tableViewController で、スコープの数を指定して検索バーを作成します。

異なるスコープを選択すると、異なるエンティティを取得できます!

このようなアプリを作ったので、これはうまくいきます!

ユーザーも、2 つの異なるデータを簡単に分離できます。

于 2013-12-26T05:23:30.420 に答える