1

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

我在 viewWillAppear 中的代码:

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

我收到一个错误addAnnotation,上面写着

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

我看到的所有其他示例对此代码都没有问题,我错过了什么?

4

1 回答 1

3

如果您查看Apple 的 API 文档,该addAnnotation:方法需要一个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协议的类,以提供自定义注释。但是,如果你只需要一个别针,上面的方法就可以了。

于 2012-07-20T02:15:30.440 回答