0

データベースにデータを入力してからテーブルビューに表示できるiOSアプリを作成しました(NSFetchedResultsControllerとtableView cellForRowAtIndexPathを使用)。これはうまくいきました。ここで、3つの1対多の関係と別のエンティティを追加しました。データをデータベースから直接プルするのではなく、データベースからエンティティ(1対多の片側)をロードする必要があります。関係で使用することができます。NSFetchedResultsControllerを引き続き使用しますか?

RelationshipEntity2は、Entity1とEntity2の間の1対多の関係です。Entity2への多くのポイント

私は使用することになっていることを知っています:

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

私はiOS開発に不慣れで、Core Dataにも不慣れですが、それを学ぶ必要があります。私がまだ出会っていない本やチュートリアルを少しでも助けたり指摘したりしていただければ幸いです。私は自分がしていることになっていることをするものを見つけるのにあまり運がありませんでした。

ありがとう、そして素晴らしい一週間を!

-------プロジェクトの詳細について追加-------
3つの部分からなるセグメント化されたボタンを備えたViewControllerを使用するタスクが与えられました。ビューコントローラのテーブルビューに追加する入力用のUITextFieldを使用してビューをポップアップする(ポップオーバーセグエではなくサブビューを前面に表示する)addUIButtonもあります。2つのエンティティと3つの1対多の関係があります。セグメント化されたボタンのボタンごとに1つの関係があります。ユーザーがセグメント化されたボタンの最初の部分を選択している場合、ポップアップテキストボックスに値を追加すると、最初のセグメント化されたボタンが選択されたときに表示されるテーブルビューにのみ値が追加されます。CoreDataGeneratedAccessorsを作成しました。このプロジェクトでは、データをデータベースに保存し、データをフェッチしてテーブルビューに表示しましたが、それはセグメント化された部分が追加される前のことでした。次に、データを「コレクション」に分割する方法を理解する必要があります。次に、セグメント化されたボタンの最初のセグメントが選択されたときに、最初のコレクションをすべて表示します。私はただ学んでいて、セグメント化された部分なしでそれを理解しました、そして今それは私に変わりました。私はリレーショナルデータベースを扱ってきましたが、iOSでは再び新しいようです。

4

1 に答える 1

1

あなたの質問は決して明確ではありません。あなたは問題を説明していませんし、あなたが達成したいことをわかりやすく説明していません。

あなたの意味を推測しようとしています:はい、あなたはあなたのfetchedResultsControllerを使い続けるでしょう。このコントローラーは、各indexPathに適切なオブジェクトを提供します。セルのコンテンツを作成するときに、。を使用してリレーションシップエンティティに簡単にアクセスできますentity.relationship

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

お役に立てれば。

于 2012-04-30T19:27:16.820 に答える