CLLocationCoordinate2D到MKAnnotation

时间:2012-07-20 01:26:02

标签: iphone ios xcode mapkit core-location

我有一个MapView,我正在尝试在当前坐标处添加注释。

我的代码在viewWillAppear:

CLLocationCoordinate2D location;
location.latitude = [maps.barLat doubleValue];
location.longitude = [maps.barLong doubleValue];
[_mapView addAnnotation:location];

我在addAnnotation上收到错误

  

将CLLocationCoordinate2D发送到不兼容类型MKAnnotation的参数。

我看到的所有其他示例对此代码没有任何问题,我缺少什么?

1 个答案:

答案 0 :(得分:3)

如果查看Apple's API docsaddAnnotation:方法需要id<MKAnnotation>,而不是CLLocationCoordinate2D。这就是你错误的原因。

如果你只是想要一个简单的注释,没有任何花哨的花哨或口哨,那就这样做:

CLLocationCoordinate2D location;
location.latitude = [maps.barLat doubleValue];
location.longitude = [maps.barLong doubleValue];
MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
annotation.coordinate = location;
[_mapView addAnnotation: annotation];

然而,大多数人最终会创建自己的实现MKAnnotation协议的类,以提供自定义注释。但是,如果你需要的只是一个引脚,上面的方法就可以了。