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
Répondre
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.)
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.
- 1. Vitesse de performance de KVO et NSNotifications?
- 2. NSnotifications pour plusieurs téléchargements
- 3. KVO pour un singleton avec plusieurs observateurs?
- 4. appleevent contre notification
- 5. NSNotifications envoyées à travers l'application
- 6. avec singleton et KVO
- 7. KVO avec NSPrivateQueueConcurrencyType
- 8. NSTreeController KVO numéro
- 9. NSNotification VS KVO
- 10. NSMutableArray KVC/KVO question
- 11. NSUserDefaults et problèmes KVO
- 12. Problèmes GCD et KVO
- 13. KVO sur un NSCountedSet?
- 14. UITableViewCell avec KVO
- 15. UIViewController ne répond pas à NSNotifications
- 16. NSNotifications entre les applications dans OS X
- 17. iPhone Objective-C Placement de NSNotifications
- 18. Séquence d'exécution lorsque deux NSNotifications sont affichées
- 19. Utilisation d'iPhone NSNotifications dans l'application MVC
- 20. iPhone KVO entre deux classes
- 21. observation KVO vs NSNotificationCenter observation
- 22. Core Data, KVO et NSInternalInconsistencyException
- 23. KVO AVAudioPlayer ne fonctionne pas
- 24. KVO NSMutableArray supprimer notification objet
- 25. KVO - observeValueForKeyPath non appelé lors de l'observation d'une énumération
- 26. UIView KVO: Pourquoi ne pas changer de "centre" provoquer des notifications KVO pour "frame"?
- 27. Iphone désinscription nsnotifications sur l'application se terminera pourquoi?
- 28. Enregistrement de tous les contrôleurs de vue pour NSNotifications
- 29. Comment recevoir NSNotifications d'Objective-C dans des classes C++?
- 30. SplitViewController Ouverture d'autres vues dans Xcode 4.2 avec NSNotifications
Quel peu de KVO trouvez-vous pour ne pas être robuste? – hooleyhoop
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
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