Mejores prácticas para el parámetro de contexto en addObserver (KVO)
Me preguntaba qué debería establecer el puntero de contexto en KVO cuando está observando una propiedad. Estoy empezando a usar KVO y no he extraído demasiado de la documentación. Veo en esta página:http://www.jakeri.net/2009/12/custom-callout-bubble-in-mkmapview-final-solution/ El autor hace esto:
[annView addObserver:self
forKeyPath:@"selected"
options:NSKeyValueObservingOptionNew
context:GMAP_ANNOTATION_SELECTED];
Y luego en la devolución de llamada, hace esto:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context{
NSString *action = (NSString*)context;
if([action isEqualToString:GMAP_ANNOTATION_SELECTED]){
Supongo que en este escenario, el autor simplemente crea una cadena que se identificará más adelante en la devolución de llamada.
Luego en el libro iOS 5 Pushing the Limits, veo que hace esto:
[self.target addObserf:self forKeyPath:self.property options:0 context:(__bridge void *)self];
llamar de vuelta:
if ((__bridge id)context == self) {
}
else {
[super observeValueForKeyPath .......];
}
Me preguntaba si hay un estándar o mejores prácticas para pasar al puntero de contexto.