2

CoreDataモデルにエンティティカテゴリがあります。カテゴリは記事と多くの関係があります。Articleにはブール値であるreadプロパティがあります。

未読記事の数を観察したい(タイトルに表示できるように)。

最初のアプローチは次のようになります。

    [self.category addObserver:self forKeyPath:@"articles.@sum.read" options:NSKeyValueObservingOptionNew context:nil];

しかし、これは機能しません。記事のコレクションを観察して、何かが追加されているかどうかを確認し、すべての要素を個別に観察できます。私はこれを機能させることができますが、もっと簡単な方法があるのではないかと思います。ヒントはありますか?

(これは、Objective-Cのコレクション内のオブジェクトのプロパティへの変更を観察するためにKVOを使用することの複製である可能性がありますが、それでもより良い方法があるはずです)。

4

1 に答える 1

0

何が変更され、いつ変更されたかをどの程度正確に把握する必要がありますか? NSManagedObjectContextObjectsDidChangeNotification要件が非常に単純な場合は、通知を聞いて を確認できuserInfoますNSUpdatedObjectsKey。これらのオブジェクトは、-changedValuesメソッドを介して変更を返します。

articlesコレクションにアイテムを追加するにはどうすればよいですか? KVO を使用する代わりに、そこに直接フックするのがおそらく最も簡単です。

于 2012-11-04T23:09:26.907 に答える