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.

Respuestas a la pregunta(3)

Su respuesta a la pregunta