Я исправил подобную проблему, автоматически выпуская мои объекты annotationView. Кроме того, MKUserLocation является объектом аннотации, поэтому проверка ваших собственных объектов аннотации (или проверка, чтобы увидеть, является ли объект аннотации MKUserLocation), и возврат nil для других объектов аннотации (или MKUserLocation) сообщит картографическому комплекту использовать объект MKUserLocation по умолчанию. Размещение этих проверок на месте может остановить вашу утечку. Смотрите ниже:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{ static NSString *placemarkIdentifier = @"placemark_identifier";
if ([annotation isKindOfClass:[MyPlaceMark class]]) {
MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:placemarkIdentifier];
if (annotationView == nil) {
annotationView = [[[MyPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:placemarkIdentifier] autorelease];
} else {
annotationView.annotation = annotation;
}
return annotationView;
}
return nil;
}
Ссылка класса MKUserLocation