9

Y a-t-il un avantage à utiliser KVO au lieu de la fonctionnalité plus "générique" (et à mon opion plus robuste) de NSNotification s?KVO contre NSNotifications

+0

Quel peu de KVO trouvez-vous pour ne pas être robuste? – hooleyhoop

+0

Les inconvénients sont bien discutés dans le [Lien Cocoa Builder] (http://www.cocoabuilder.com/archive/cocoa/167622-kvo-and-the-observevalueforkeypath-bottleneck.html) J'ai donné dans ma réponse. Généralement, les problèmes proviennent du fait que vous devez gérer toutes les notifications KVO dans une seule fonction, qui est fragile en cas de sous-classement. – zoul

+0

OK, je ne suis pas d'accord avec ça. KVO n'est pas fragile en sous-classe - en utilisant un sélecteur car le contexte est un hack et non ce qu'il est. – hooleyhoop

Répondre

7

Je déteste le KVO avec passion, principalement parce qu'il me force à acheminer toutes les notifications KVO à travers un seul gestionnaire. J'utilise tout ce qui est disponible si j'ai le choix. Mais KVO a l'avantage d'être disponible pour plusieurs des classes de la bibliothèque standard - si vous voulez observer les changements de propriétés sur certaines classes de la bibliothèque standard, KVO peut être votre seule option. Il y en a un very interesting thread on Cocoa Builder sur le KVO et diverses options d'observation et de liaison.

(Je dois ajouter que je ne rognes avec KVO comme une interface d'observation de haut niveau. Je pense qu'il est très bon que la plomberie pour d'autres technologies, en particulier les liaisons.)

4

Pour utiliser NSNotifications todo quelque chose de similaire Pour le KVO, vous devez écrire des méthodes d'accès standard pour chaque propriété que vous souhaitez observer.

Ceci est beaucoup moins "générique" et beaucoup moins robuste que l'utilisation de KVO.

Questions connexes