Мне было интересно, что вы должны установить указатель Context в KVO, когда вы наблюдаете свойство. Я только начинаю использовать KVO, и я не слишком разбирался в документации. Я вижу на этой странице: http://www.jakeri.net/2009/12/custom-callout-bubble-in-mkmapview-final-solution/ автор делает это:
[annView addObserver:self
forKeyPath:@"selected"
options:NSKeyValueObservingOptionNew
context:GMAP_ANNOTATION_SELECTED];
И затем в обратном вызове делает следующее:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context{
NSString *action = (NSString*)context;
if([action isEqualToString:GMAP_ANNOTATION_SELECTED]){
Я предполагаю, что в этом сценарии автор просто создает строку, которая будет идентифицирована позже в обратном вызове.
Затем в iOS 5 Нажимая книгу "Лимиты", я вижу, что он делает это:
[self.target addObserf:self forKeyPath:self.property options:0 context:(__bridge void *)self];
обратный вызов:
if ((__bridge id)context == self) {
}
else {
[super observeValueForKeyPath .......];
}
Мне было интересно, есть ли стандартная или лучшая практика для перехода в контекстный указатель? Спасибо!