Использование нескольких аннотаций на виде карты

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

«Координата свойства не найдена для объекта типа 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;

Но я видел, что я импортировал контроллер, в котором эта координата определена, в этот контроллер представления карты. Пожалуйста, предложите мне правильный код для исправления


person velraj    schedule 06.01.2012    source источник
comment
Вы хотели написать annotation.coordinate ? а не annotations.coordinate?   -  person akshay1188    schedule 06.01.2012


Ответы (1)


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

MKMapPoint annotationPoint = MKMapPointForCoordinate(annotations.coordinate);

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

MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);


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

for (id<MKAnnotation>  annotation in annotations) {

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

person Community    schedule 06.01.2012