0

私の CoreData アプリでは、すべての逆多対多リレーションシップにリレーションシップ エラーがあります。-- を使用して観察されNSLog(@"%@", [self description])ました。データを保存してから開くと、エラーが表示されます。

関係削除ルールが原因である可能性があります。

ここに例があります。

Person
friends<<--->>  (An inverse many-to-many relationship on self.
addresses<<--|  (A many-many relationship to Address
             |
Address      |
owners<<-----| (A many-many relationship to person.address Addresses can be shared

Address.owners関係は拒否するように設定されています。Person.addresses関係は無効に設定されます。Person.friends関係は拒否するように設定されています。

いくつかの説明をいただければ幸いです:

アドレスが共有されていない、より簡単なケースを考えてみます。

AddressBoook    Person         Address
    people-------->addresses---->>owner

Person.address無効化に設定されています。(所有者が削除された場合にのみアドレスを削除します) Address.owner は ... に設定されます。アクションはありません。(個人を削除したくないですか。それとも無効化しますか?個人はまだAddressBookオブジェクトに保持されているためです

  • 何を削除するか、リレーションシップまたは所有オブジェクト。
  • 多対多の関係では、無効化は最後のオブジェクトまたは最初のオブジェクトの削除時に発生するため、他のオブジェクトが空間にぶら下がっていると考えることができます。Set! の削除に違いありません。

ありがとう

4

0 に答える 0