Аннотации представления карты с разными цветами контактов

У меня есть массив с более чем 200 объектами, и я пытаюсь выполнить цикл по каждому из них.

Каждый объект будет иметь поле «да/нет», и я хочу отображать маркер другого цвета в зависимости от этого значения «да/нет».

Из того, что я вижу, мой цикл сначала проходит через каждый объект, а затем все аннотации добавляются в конце для каждого объекта.

Поскольку я выполняю проверку в своем цикле по массиву на значение «да-нет», когда вся аннотация добавляется к моей карте, она будет использовать значение «да/нет» из последнего объекта в массиве, когда он переходит к графику для все.

Как мне сделать так, чтобы маркер отличался в зависимости от значения да/нет для каждого отдельного элемента?

Мой код

for (i = 0; i < [appDelegate.itemArray count]; i++) {
        item_details *tempObj = [appDelegate.itemArray objectAtIndex:i];
        location.latitude = [tempObj.lat floatValue];
        location.longitude = [tempObj.lon floatValue];
        current_yesno = tempObj.yesno;
        MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc]initWithTitle:tempObj.name andCoordinate:location];
        [self.mapView addAnnotation:newAnnotation];
        [newAnnotation release];            
            } 

с моим кодом аннотации следующим образом

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation{

    MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];

if(current_yesno == YES){
    annView.pinColor = MKPinAnnotationColorGreen;
}
else
{
    annView.pinColor = MKPinAnnotationColorRed;
}
    annView.animatesDrop=NO;
    annView.canShowCallout = YES;
    annView.calloutOffset = CGPointMake(-5, 5);
    return annView;

}

и current_yesnoобъявлен в моем файле .h.

5
задан user1096447 5 June 2012 в 15:34
поделиться