200 を超えるオブジェクトを含む配列があり、それぞれをループしようとしています。
各オブジェクトにははい/いいえフィールドがあり、そのはい/いいえの値に応じて異なる色のマーカーを表示したいと考えています。
私が見ることができることから、私のループは最初に各オブジェクトを通過し、次にすべての注釈が各オブジェクトの最後に追加されます。
すべての注釈がマップに追加されたときに、ループ内で yes no 値の配列を介してチェックを実行するため、すべてをプロットするときに、配列内の最後のオブジェクトの yes/no 値が使用されます。
個々の要素のはい/いいえの値に応じてマーカーが異なるようにするにはどうすればよいですか?
私のコードは
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ファイルで宣言されています。