我在地图视图中使用多个注释..但我的所有编码都是正确的。但是 我有一个错误代表
“在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;
但我已经看到我已经将这个坐标定义的控制器导入到这个地图视图控制器中。请给我正确的代码来纠正
答案 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
属性。