I持って、次のcoredataエンティティへの変更を検出します。私のビューコントローラの1つでは、すべての部品を含む車のビューを表示します。私は車の部品の変更を聞きたい。単一のエンティティcoredata
私はこれがKVOで十分に簡単だと思いました。その後、
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.car addObserver:self forKeyPath:@"parts" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:nil];
}
:私はすべての部品を変更しない場合でも
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if ([@"parts" isEqualToString:keyPath]) {
// do what I need to do with new parts
}
}
は、しかし、私は私がobserveValueForKeyPathメソッドに予想外のコールバックを取得しています車の部品を更新するために、サーバから変更をプルする場合。フォルトあれば疑問に思う
はKVOを使用することを望んで、多分coredataとそのだけではない素晴らしいアイデアをオブジェクトでした。私は間違ったことをやっているのですか?
KVOを使用すべきでない場合は、私の他の選択肢は次の通りです: 1. MOCの変更を聞きます。私は実際にオブジェクト上で何が変わったのか分からないので、これは素晴らしいことではありません。 2.私が興味を持っている車だけを見つけるために、述語を持つパーツにFetchedResultsControllerを実装します。ちょっと不安なようですが、これが私に必要なものを与えるでしょう。