Frage

Der Unterschied zwischen diesen beiden Zeilen Code besteht darin, dass die zweite KVO-konform ist und die erste ist, nicht wahr?

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

Der Grund, warum ich frage ist, weil ich 60 Attribute auf mehr als 500 Objekte aktualisieren müssen, ich will nicht KVO Benachrichtigungen für mehr als eine Handvoll von Attributen.

Ich verwende NSFecthedResultsController für meine UITableView und ich will nicht übermäßig setNeedDisplay auf die Zellen auszulösen.

War es hilfreich?

Lösung

Es gibt keinen Unterschied zwischen den beiden so weit wie Schlüsselwert Observing Linien betroffen ist. Beide auslösen KVO Benachrichtigungen standardmäßig. Sie können dieses Verhalten außer Kraft setzen, wenn. Von Apples' KVO Programming Guide:

  

Sie können die automatische Steuerung Beobachter Benachrichtigungen für Eigenschaften der Unterklasse durch die Klassenmethode automaticallyNotifiesObserversForKey: implementieren. Subklassen kann den Schlüssel als Parameter übergeben testen und Rück JA, wenn die automatische Benachrichtigung aktiviert werden soll, NO, wenn sie deaktiviert werden sollte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top