16

migration rulesを変更した場合については何も見つかりませんでしdeletion rulemanagedObjects relationship

私の最初のコアデータ モデルには、関係を持つエンティティが含まれていました。この関係の削除規則は でしたcascade。この動作を に変更する必要がありましたNullify

したがってnew version of my coredata model、軽量の移行なしで作成しましたが、それでも機能します。したがって、モデルの新しいバージョンを追加する必要があった場合、または削除ルールの変更 (たとえば からcascadenullify) が移行に影響しない/必要がない場合は、私は傷つきます。

助言がありますか?

4

1 に答える 1

21

削除ルールは、実行時の Core Data の動作を指定します。1 つのオブジェクトが削除されると、他の関係が NULL に設定されるか、関連するオブジェクトも削除される可能性があります。

したがって、削除ルールは Core Data モデルにのみ保存され、永続ストア ファイルには保存されないと想定しました。

これを確認するために、2 つの Core Data モデルから 2 つのストア ファイルを作成しました。エンティティは同じですが、削除ルールは異なります。NSStoreModelVersionHashes永続ストアmetadataディクショナリの は同一でした。

NSStoreUUID実際、両方の SQLite ファイルは、永続ストア ファイルの「Z_METADATA」テーブルの「Z_UUID」を除いて同一でした。

また、addPersistentStoreWithType:...読み込まれたストアのバージョン ハッシュがモデル内のハッシュと異なる場合、失敗します。

したがって、削除ルールを変更しても問題ありません。

于 2013-01-08T19:15:45.630 に答える