1

封じ込めOneToOne関係がありますLibrary -- Boss

Library --(Cascade)--> Boss
Boss    --(No Action)--> Library

ユースケース:ボスを交換します。置換とは、データベースから古い値を削除し、データベースに新しい値を保存して、関係の新しい値を設定することを意味します。新しいボスを設定してコンテキストを保存すると、新しいボスが挿入され、関係が新しいボスに設定されますが、古いボスは削除されず、ライブラリキーが無効になるだけです。データベースから古いボスコンプリートを削除するにはどうすればよいですか?

4

2 に答える 2

0

Boss の NSManagedObject をサブクラス化し、-(void)willSave をオーバーライドし、必要に応じてそのメソッドでオブジェクトを削除できます。

補足として、この場合、No action の代わりに Nullify を使用する必要があります。どのアクションも問題を引き起こさず、ほとんど役に立ちません。https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.htmlを参照してください。

于 2013-02-23T21:55:41.057 に答える
0

ライブラリとボスの間の削除ルールを「カスケード」に設定しましたよね?その場合、ボスを参照するエンティティが他にない場合にのみ、ボスが削除されます。一種の参照カウント。現在上司エンティティを参照しているレコード/エンティティがデータベース内にないことを確信していますか?

于 2013-02-23T22:02:42.593 に答える