当坐标相同但其他数据不同时,地图注释会出现意外结果

时间:2011-07-26 10:12:59

标签: iphone ios4 annotations mapkit

在我的应用中有多个注释。这是代码。

SecondViewController.m

-(void)putAnnotation {

for (int i=0; i<[self.atmCentres count]; i++) {
    NSDictionary *tempDict = [atmCentres objectAtIndex:i];

    MapLocation *annotation = [[MapLocation alloc] initWithDictionary:tempDict];
    [mapView addAnnotation:annotation];
    [annotation release];
    }
}

MapLocation.m

-(id)initWithDictionary :(NSDictionary *)_ATMDetails {
ATM = _ATMDetails;
coordinate.latitude = [[ATM objectForKey:@"Latitude"]doubleValue];
coordinate.longitude = [[ATM objectForKey:@"Longitude"]doubleValue];
return self;
}

SecondViewController.m

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
MapLocation *annotation = (MapLocation *)[view annotation];
NSLog(@"%@", annotation.ATM);
}

有时我会为几个地方获得相同的坐标,因此我会得到一个注释。虽然坐标以外的其他数据不相同。

因此,当我在callout中使用detailDisclosureButton时,我会得到该注释的最后一个数据。怎么解决这个问题。 随意进一步询问。提前谢谢。

0 个答案:

没有答案