2

私はこのような3つのエンティティを持っています:

この画像に問題があることをお詫びします

この画像には、「週」エンティティの「日」関係がto-manyである必要があるという問題があり、関係の最後に2つの矢印があるはずです。

ここに2つの質問があります。

1日 Day-Class(NSManagedObjectのカスタマイズされたサブクラス)オブジェクトの場合、次のような関係に注意した後。

Week* aWeek;
Day *aDay;
[aWeek addDayObject:aDay];

そうすれば、週エンティティの関係「日」からその日を本当に見つけることができます。

しかし逆に、Dayオブジェクト「aDay」の関係「thisWeek」はまだゼロであることがわかりました。

NSMangedObjectのサブクラスを作成すると、次のようなメソッドが得られると聞きました。

- (void)addXXXObject:(xxx)xxx

あなたがto-manyの関係に対処するのを助け、逆の関係を自動的に処理します。

しかし、ここではそうではないようです。だから私は自分自身で逆の関係に対処する必要がありますか、

または、コアデータが提供する場合、逆の関係でオブジェクトを自動的に追加するにはどうすればよいですか?

2位。それらの関係によって接続された、1つの「週」を持つ多くの「日」があるとします。

私が欲しいのは、ユーザーが日の1つを削除するたびに、その週にまだいくつかの日が関係しているかどうかを確認することです。

含まれている場合は、ユーザーにその日を削除させます。

そうでない場合は、「Week」オブジェクトも削除します。

では、to-many関係の削除ルールを使用する必要がありますか?

私はこれらの規則についてはあまり明確ではありません。

ありがとう!

4

1 に答える 1

5

CoreData は、両方のエンティティで逆の関係を定義している限り、逆の関係を実際に処理する必要があります。ここを参照してください。

日 - >週の関係には無効化削除ルールを使用し、週 - >日にはカスケードします。
週を削除すると、それに関連付けられているすべての日も削除されます。
日を削除すると、曜日から削除されます。日がなくなった週を自動削除することはできません。ただし、曜日を観察し、自分自身を削除することはできself.days.count == 0ます。

于 2012-02-01T13:27:00.533 に答える