コアデータが以下に示す構造を作成することを拒否する理由を説明してください。CoreData:一意性制約と1対1の義務的な逆関係
|Employee | |Department|
|------ | <<--(opt)-------inverse-------(non_opt)--> |----------|
|id (un) | |name (un) |
|fullName |
* un - unique, opt - optional
一部の部門では、ゼロ以上の従業員が働くことができますが、すべての従業員は1つの部門のみで働く必要があります。たとえば、MySqlのスキーマは明白です。コアデータについては、一貫性エラーを避けるために逆の関係を作りました。しかし、Core Dataは、独自のビジョンを持っており、これは、それが私のためにこう言われる、
error: Misconfigured Entity: Entity Department cannot have uniqueness constraints and to-one mandatory inverse relationship Employee.department
私はすでにいくつかの不審な解決策は、(、すべての関係をオプションにDepartment.nameからユニークを削除し、「プログラムで」それをチェックし、削除を発見しました逆の関係)、私は間違いを犯した場合、またはそうでない場合、Appleがこの奇妙なロジックで何を言おうとしているのかを理解したいと思います。
それは 'ユニーク制約に、NSMergeByPropertyObjectTrumpMergePolicyだけではないrelationships.'、すべての属性を上書きし、ここを参照してくださいに関連するべきです:http://dorianroy.com/blog/2015/09/how-インプリメンテーションユニーク制約インコアデータ-iOS-9/ – bteapot
ありがとうございますが、私のケースではないと思います。 1)私はこのポリシーを使用しません。すべての制約チェックエラーは例外をスローします.2)これはコンパイル時エラーです。コアデータは自分のデータスキーマに嫌いであり、アプリケーションはそれでビルドできません。 – Anton
ユニークな制約の競合は、マージの競合に似ていますが、SQL固有のインデックスではありません – malhal