2011-03-01 11 views
0

コアデータテーブルの内容を示すテーブルビューでアプリケーションを開発しています。テーブルビューを通じて>>翻訳(テキスト、コード)コアデータの関係テーブルビューに表示

私は一旦通常のNSFetchedResultsControllerを使用してすべてのエンティティを取得しますが、それぞれの行を移入するための時間です( - エンティティ(名、コード): データモデルは次のようなものですcellForRowAtIndexPath :)ユーザーが入力したコードに基づいて2つの翻訳を取得するには、それぞれのエンティティを掘り下げなければなりません。私はそれを行うためにNSFetchRequestを使用していますが、それは正しいことですか(私が行を移入するたびに1つのフェッチ要求)かどうか疑問に思っていました。 本能的には、NSFetchedResultsControllerで必要なすべてのデータを取得しますが、セルにデータを取り込むたびに各変換を検索するのではなく、どうやって調べることができません。 誰かに助言や興味深いリンクがありますか?

答えて

0

各セルが各Entityオブジェクトに関連するTranslationオブジェクトを表示する必要がある場合、フェッチされたEntityオブジェクトから適切なTranslationオブジェクトまでリレーションシップを移動するだけで済みます。

あなたはエンティティオブジェクトをフェッチして、そのようにように、各セル行の翻訳の値にアクセスするために、それらを表示するテーブルを構造化したら:セットを返し

NSSet *translations=[anEntityObject valueForKey:@"translations"]; 

を... tableview行で表されるEntityオブジェクトのTranslationオブジェクト

非常に一般的なルールとして、テーブルビューごとに1つのフェッチしか行いません。テーブルビューは、特定の1つのエンティティに関連するデータを表示するように構成する必要があります。

+0

これはまさに私がやっていることです、それはちょうど高価なメモリを感じます。確認のために@TechZenありがとうございます。 違う意見がありますか? – cescofry

+0

私が記述しているパタンは、アプリの90%が使用する方法であり、あなたが間違いなく始めるべきものです。 NSFetchedResultControllerはメモリ使用で非常に良いです。 1,000以上の行を持つ表を持たない限り、ほとんど問題になりません。メモリに問題がある場合は、フェッチを制御メモリに変更する方法については、Core Dataプログラミングガイドを参照してください。しかし、Knuthの言葉を思い出してください。「時期尚早の最適化はすべての悪の根源です。」あなたが決して持っていないかもしれない問題を避けるために無駄な時間を費やさないでください。書き込み、テスト、最適化。特に新しいAPIを学ぶとき。 – TechZen

+0

"早すぎる最適化はすべての悪の根源です。"それは良いもの! – cescofry

関連する問題