1

私が読んでいることから、のような関係のdepartment <->> employee場合、部門の最後の従業員が削除された場合に部門が削除されるという単純な削除ルールを設定することはできません。代わりに、このルールをコーディングする必要があります。

didChangeValueForKey:部門エンティティの方法で、Key-Value監視を使用するかもしれないと思いました。この削除アクションをDRYの方法で1か所に集中させたいと思います。

次のように、部門エンティティが自分自身を削除できるとは思いません。

- (void) didChangeValueForKey:key {
    if (![key isEqualToString @"employee") return;
    if (self.employee == NULL)
        [self deleteAndSave];  // a category method
}

代わりに通知を投稿するかもしれません

- (void) didChangeValueForKey:key {
    if (![key isEqualToString @"employee") return;
    if (self.employee == NULL)
        [[NSNotificationCenter defaultCenter] postNotificationName:@"empDelete" object:self];
}

次に、管理対象オブジェクトのコンテキストなどを処理するオブジェクトで削除を実行します。

これを簡単にする何かが欠けていますか?

4

2 に答える 2

1

削除ルールに適した場所はです-(void)prepareForDeletion。最も単純なものから最も洗練されたものまで、必要な動作を実装できます。

部門を削除する場合、たとえば、部門のすべての従業員を親部門に移動できます(存在する場合)。また、従業員を削除するときに、親部門にまだ従業員がいるかどうかを確認し、空のままにしておくと削除できます。あなたの呼び出し。

于 2012-06-27T18:43:30.573 に答える
0

あなたの解決策はうまくいくようです、そしてここにそれをする他のいくつかのありそうな方法があります。 コアデータ削除ルールと多対多の関係

于 2012-06-27T18:37:35.167 に答える