Использование нескольких аннотаций на карте - PullRequest
0 голосов
/ 06 января 2012

Я использую несколько аннотаций в виде карты ... но все мое кодирование правильное ... Но у меня есть одна ошибка, представляющая

"Координата свойства не найдена для объекта типа 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 голосов
/ 06 января 2012

Как уже упоминалось в комментарии, вам нужно изменить annotations в этой строке:

MKMapPoint annotationPoint = MKMapPointForCoordinate(annotations.coordinate);

на annotation (текущий объект в массиве, проходящий через цикл):

MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);


Но вам также необходимо объявить объект annotation в цикле for следующим образом:

for (id<MKAnnotation>  annotation in annotations) {

, чтобы компилятор знал, что annotation - это объект, который соответствуетк протоколу MKAnnotation, который имеет свойство coordinate.

...