2

これらの2行のコードの違いは、2行目はKVOに準拠しており、1行目は準拠していないということです。

[person setValue:tempPerson.name forKey:@"name"];
person.name = tempPerson.name;

私が尋ねている理由は、500を超えるオブジェクトの60の属性を更新する必要があるためです。少数の属性を超えるKVO通知は必要ありません。

UITableViewにNSFecthedResultsControllerを使用していますが、セルで過度のsetNeedDisplayをトリガーしたくありません。

4

1 に答える 1

3

Key-Value Observingに関する限り、2つの行に違いはありません。どちらもデフォルトでKVO通知をトリガーします。ただし、この動作はオーバーライドできます。ApplesのKVOプログラミングガイドから:

classメソッドを実装することにより、サブクラスのプロパティの自動オブザーバー通知を制御できますautomaticallyNotifiesObserversForKey:。サブクラスは、パラメーターとして渡されたキーをテストし、自動通知を有効にする必要がある場合はYESを返し、無効にする必要がある場合はNOを返すことができます。

于 2009-11-26T22:33:22.887 に答える