如何在MKPinAnnotation中存储与引脚相关的信息

时间:2011-05-10 11:54:30

标签: web-services ios mkannotation

实际上,我从网络服务中检索了很多关于服务站的信息,他们在这里,我为每个工作站显示一个引脚注释,用UIButtonTypeDetailDisclosure在地图上显示它,现在我想要为每个pin存储一些额外的信息,如:

float lng = [[stationEnCours objectForKey:@"ssiphone_longitude"] floatValue];//that's how i retrieve it from web-service
float lat = [[stationEnCours objectForKey:@"ssiphone_latitude"] floatValue];//that's how i retrieve it from web-service

出于我的目的,我使用这个众所周知的委托方法:

 -(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
    {
        NSLog(@"calloutAccessoryControlTapped");
//how to do to store additional informations

    }

但我是某种阻止,我怎么能存储与每个引脚相关的其他信息,请帮助,任何建议,示例代码,教程将不胜感激:)))))thx提前

1 个答案:

答案 0 :(得分:2)

是的,在MyLocation.h(实现MKAnnotation的类)中声明所有属性。在创建注释时以及在调用addAnnotation之前,请设置属性。

calloutAccessoryControlTapped中,获取这样的属性(示例使用上一个问题中定义的MyLocation中的属性):

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
    MyLocation *myLoc = (MyLocation *)view.annotation;
    NSLog(@"calloutAccessoryControlTapped: enseigneDeLaStation = %@, distanceVersLaStation=%@", myLoc.enseigneDeLaStation, myLoc.distanceVersLaStation);
}