2011-07-15 9 views
6

Siento que no entiendo completamente la diferencia entre KVO y NSNotification ... Parecen ser muy similares ... Podría hacer un ejemplo que muestre cuándo es mejor usar un método y cuando el otro ?NSNotification VS KVO

no hablo acerca de enlace y IB, pero me refiero a añadir Observador mediante programación en mi código con NSNotificationCenter o MVA

[self.preferenceController addObserver:self 
            forKeyPath:@"color" 
             options:NSKeyValueObservingOptionOld 
             context:@"Color-change" 
]; 
+0

KVO solo se usa para propiedades y no se puede usar para responder a métodos u otras acciones. NSNotification se puede usar para métodos y otras acciones. Ver [aquí] (https://blog.shinetech.com/2011/06/14/delegation-notification-and-observation/) – Honey

Respuesta

6

MVA sólo funciona en los valores, NSNotification se puede utilizar para los cambios de valor, pero puede ser utilizado para cualquier cosa y puede llevar una carga útil mucho mayor.

Por ejemplo, podría tener una NSNotification publicada cada vez que un archivo haya terminado de descargarse y la userInfo podría contener el tiempo que tomó, el número de bytes descargados y la ruta del sistema de archivos en la que se guardó el archivo.