在地图视图上使用多个注释

时间:2012-01-06 09:27:51

标签: ios mkannotation

我在地图视图中使用多个注释..但我的所有编码都是正确的。但是 我有一个错误代表

“在id类型的对象上找不到属性坐标” 使用以下代码

NSLog(@"%d",[annotations count]);
    MKMapRect flyTo = MKMapRectNull;
    for (id  annotation in annotations) {
        NSLog(@"fly to on");
        MKMapPoint annotationPoint = MKMapPointForCoordinate(annotations.coordinate);

        MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0, 0);
        if (MKMapRectIsNull(flyTo)) {
            flyTo = pointRect;
        } else {
            flyTo = MKMapRectUnion(flyTo, pointRect);
        }
    }

    // Position the map so that all overlays and annotations are visible on screen.
    mapView.visibleMapRect = flyTo;

但我已经看到我已经将这个坐标定义的控制器导入到这个地图视图控制器中。请给我正确的代码来纠正

1 个答案:

答案 0 :(得分:0)

如评论中所述,您需要在此行中更改annotations

MKMapPoint annotationPoint = MKMapPointForCoordinate(annotations.coordinate);

annotation(数组中的当前对象循环播放):

MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);


但您还需要在annotation循环中声明for对象,如下所示:

for (id<MKAnnotation>  annotation in annotations) {

以便编译器知道annotation是一个符合MKAnnotation协议的对象,该协议具有coordinate属性。