Objective c 如何将条件放入所选方法注释mapkit中?

Objective c 如何将条件放入所选方法注释mapkit中?,objective-c,annotations,mkmapview,mkannotation,mkannotationview,Objective C,Annotations,Mkmapview,Mkannotation,Mkannotationview,我有一个方法可以为地图中的任何注释添加选定的方法,但我不希望此方法适用于我的注释位置(用户位置注释),我不知道如何操作 这是我将select方法添加到任何注释的代码,我希望该方法不适用于我的用户位置注释 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { NSString *action

我有一个方法可以为地图中的任何注释添加选定的方法,但我不希望此方法适用于我的注释位置(用户位置注释),我不知道如何操作

这是我将select方法添加到任何注释的代码,我希望该方法不适用于我的用户位置注释

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    NSString *action = (__bridge NSString *)context;
    if ([action isEqualToString:ANNOTATION_SELECTED_DESELECTED]) {
        BOOL annotationSelected = [[change valueForKey:@"new"] boolValue];
        if (annotationSelected) {
            NSLog(@"Annotation was selected, do whatever required");
        }else {
            NSLog(@"Annotation was deselected, do what you must");
        }
    }
}
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {

    for (MKAnnotationView *anAnnotationView in views) {
        if (!Change) {
            [anAnnotationView setCanShowCallout:NO]; //this method is for show popover annotation
            [anAnnotationView addObserver:self forKeyPath:@"selected" options:NSKeyValueObservingOptionNew context:(__bridge void *)(ANNOTATION_SELECTED_DESELECTED)];
            NSLog(@"%@",anAnnotationView);
        }
    }
}

为什么要使用KVO来检测注释选择?为什么不改用didSelectAnnotationView委托方法,您就不需要做这些事情了?在任何情况下,您都可以检查view.annotation是否属于MKUserLocation类型。@Anna我的朋友,我很困惑,请告诉我代码是什么?在
didSelectAnnotationView
delegate方法中,它类似于:
if([view.annotation iskindof class:[MKUserLocation class]]){//handler user location tap}else{//handle非用户位置点击}