StackOverflow を何年も読んでいる皆さん、こんにちは。参加することにしました。これを解決するのに苦労しています:
「人」と「トラック」の 2 対多の関係を持つ「デポ」エンティティがあります。「デポ」オブジェクトが与えられたときに、関係の1つに変更(挿入、削除)があることを観察したい(そしてどの関係であるかを理解したい)。
現在、私はこれをやっています:
[mydepot addObserver:self forKeyPath:@"Trucks" options:NSKeyValueObservingOptionNew context:nil];
と
[mydepot addObserver:self forKeyPath:@"Persons" options:NSKeyValueObservingOptionNew context:nil];
ただし、関連する 2 つのコレクションのいずれかで何かが変更されるたびに、observeValueForKeyPath
2 回 (キーパスごとに 1 回) 呼び出されます。
私はそれを間違っていますか?"change" dict を見ると、(OptionOld も観察して) 予期しない変更は表示されません (人を変更しても、トラックは変更されません) が、通知は引き続き発生します。
ありがとう、ピエトロ
編集: どちらの場合も、「変更」辞書には「新規」フィールドに関係全体が含まれているようです。(もちろん、1回は人、1回はトラック)
edit2: たまたま単純なプロパティを観察していたとしても、managedctx の保存操作に関連している可能性はありますか? 保存すると、オブジェクト全体が変更されたと見なされます。