0

CoreDataで「結合」エンティティを並べ替えるのに問題があります。私はこのようなモデルを作りました: ここに画像の説明を入力してください

ロジックは次のようになります。エンティティAにはアイテムのリストがあります。ユーザーはAから1つ以上のアイテムを選択し、それらをエンティティCに入れることができます。これは正常に機能します。ただし、結果セットは(論理的に)ソートされなくなります。したがって、次のような「結合」エンティティBを実装しました。

ここに画像の説明を入力してください

これで、結果はエンティティBのフィールド日付で並べ替えることができます。これは、エンティティAとBの間の「結合」のようなものです。

しかし、ここで私は混乱します。新しいアイテムをBに挿入するとき、それらをCとAにも追加する必要がありますか、それともリレーションとともに自動的に挿入されますか?

編集-解決策: ここに画像の説明を入力してください

4

1 に答える 1

1

CoreData によって生成されaddXXXItemsObjectたメソッドの 1 つを呼び出すか、または のような関係プロパティb.c = myCInstance;を設定すると、正確に1 つの関係が設定されます。

したがって、さまざまな方法で B オブジェクトを設定できます。c <--> b最初に関係を設定します。

b.c = instanceOfC;
// or
[c addBItemsObject:b];

そしてb <--> a関係:

b.a = instanceOfA;
// or
[a addBItemsObject:b];

最も簡単なのは、それぞれに最初のバージョンを使用することです。

    b.c = instanceOfC;
    b.a = instanceOfA;

また、スクリーンショットを見ると、関係のいくつかを対多にする必要があるようです。

編集:これを約5回編集して、より一貫性を高めました。

于 2012-06-11T11:49:41.180 に答える