2

正常に動作するコア データ アプリがあります。私は今、いくつかのリレーションシップに削除ルールを追加しようとしています。エンティティ 1 にはエンティティ 2 のセットがあります。

エンティティ 1 が削除され、いくつかのエンティティ 2 オブジェクトがある場合は、削除を拒否し、そうでない場合は許可します。エンティティ 2 は、エンティティ 1 を気にせずに削除できます

エンティティ 1 の関係を [拒否] に設定し、エンティティ 2 の関係を無効に設定しています。

現在、エンティティ 1 を削除しようとするとエラーが発生します [引用]未解決のエラー エラー ドメイン=NSCocoaErrorドメイン コード=1600 「操作を完了できませんでした。(Cocoa エラー 1600.)」 UserInfo=0x1e882f40 {NSValidationErrorObject= (エンティティ:工場; id: 0x1dda43e0 [/引用]

それを機能させるために何か他のことをしなければなりませんか

4

3 に答える 3

7

拒否ルールは期待どおりに機能しません。Appleのドキュメントから:

ルールが拒否の場合、オブジェクトを削除する前に、リレーションシップから宛先オブジェクトを削除する必要があります。そうしないと、保存時に検証エラーが発生します。

残念ながら、拒否ルールは削除を防止しませんが、検証エラーを引き起こします。そのため、削除する前にリレーションシップが空かどうかを手動で確認する必要があります。

于 2013-03-01T11:24:52.213 に答える
2

次の条件に該当する場合、1600 エラーが生成されます。

  • エンティティ 1 からエンティティ 2 への関係では、削除の拒否ルールが有効です。
  • エンティティ 1 オブジェクトを削除しました
  • Entity1.entity2 に関連オブジェクトがあります
  • 永続ストアをコンテキストに保存しようとしています

Entity 1 オブジェクトの削除を実行する前に、Entity1.entity2 が null であることを確認する必要があります。そうでない場合は、次のいずれかのオプションを実行します。

  • エンティティ 1 オブジェクトの削除をスキップする、または、
  • Entity1.entity2 オブジェクトを削除してから、Entity 1 オブジェクトを削除します。
于 2012-11-20T05:14:25.677 に答える
0

との関係にルールがあるdetailオブジェクトを削除した後、エラーが発生しました。同時に、 との関係に関するhadルールがありました。のルールを からに変更すると、エラーは消えました。nullifymastermastercascadedetailsdetailnullifyno action

それはまだ私には奇妙に見えます。エラーの原因を理解できません。

于 2014-12-09T15:42:13.997 に答える