2012-04-30 16 views
0

私はデータベースにデータを入力してから、tableview(NSFetchedResultsController & tableView cellForRowAtIndexPathを使用)で表示できるiOSアプリケーションを作成しました。これはうまくいった。さて、私は3対1の関係と別のエンティティを追加しました。データベースから直接引き出すのではなく、データベースからエンティティを(1対多の一方の側に)ロードする必要があります。関係で使用することができます。私はまだNSFetchedResultsControllerを使用しますか?dbからデータを直接取り出すのではなく、dbから直接エンティティをロードする

relationshipEntity2は、Entity1 & Entity2の間の1対多の関係です。

Entity2 *entity2 = [[self.entity1.relationshipEntity2 allObjects] 
    objectAtIndex:indexPath.row]; 

私はiOSの開発に新しいとコアデータにしても新しいですが、私はそれを学ぶ必要があります:私は、私が使用するようになってる知っEntity2

に多くのポイント。私がまだ出くわしていない本やチュートリアルへの助けや指し示しは、大いに感謝します。私は、私がやっていることをする何かを見つけることは、多くの運がなかった。

ありがとうございました。

-------プロジェクトの詳細については、-------
私は、3つの部分に分割されたボタンを持つView Controllerを持っているという仕事があります。また、UITextFieldをView Controller上のテーブルビューに追加するために、UITextFieldを使ってビューをポップアップする(サブビューを前面に持ち、ポップオーバーセグを持たない)UIButtonが追加されています。 2つのエンティティと3対1の関係があります。セグメント化されたボタンには各ボタンごとに1つの関係があります。ユーザーがセグメント化されたボタンの最初の部分を選択している場合、ポップアップテキストボックスに値を追加すると、最初にセグメント化されたボタンが選択されたときに表示されるテーブルビューにのみ値を追加する必要があります。私は、CoreDataGeneratedAccessorsを作成しました。このプロジェクトでは、データをデータベースに保存し、データをフェッチしてテーブルビューに表示しましたが、セグメント化された部分が追加される前です。ここで、データを「コレクション」に分割し、セグメント化されたボタンの最初のセグメントが選択されたときに最初のコレクションをすべて表示する必要があります。私はちょうど学んで、ちょうど分割された部分なしでそれを考え出した、そして今それは私に変わった。私はリレーショナルデータベースで作業しましたが、iOSでは新しいものと思われます。

答えて

1

あなたの質問は決して明確ではありません。あなたは何の問題も記述しておらず、あなたが何を達成したいかを明瞭に説明しません。

あなたの意味を推測しようとしています。はい、引き続きfetchedResultsControllerを使用します。このコントローラは、各indexPathに対して適切なオブジェクトを提供します。あなたのセルの内容を構築するときに、entity.relationshipで関係エンティティに簡単にアクセスできます。

entity.relationshipは、オブジェクトの順序付けられていないグループであるNSSetを返すため、上記のコードは機能しません。したがって、objectAtIndexは機能しません(これはNSArrayオブジェクトでのみ機能します)。

これが役に立ちます。

+0

これは私が言っていることです!私には分かりませんでした。これは私が与えられたすべての情報です。問題は、私がiOS開発に慣れていなかったためにライン間に何かが見当たらないと思ったことでした。これは私が問題を解決するように言われた方法です。 – jpgr

+1

だから、あなたがしなければならないことは、上のチェックマークにチェックを入れて優秀な読書について私に賞賛することです... ;-) – Mundi

関連する問題