ユーザーが追加できるピンがいくつかあります。コールアウトにはボタンがあります。ユーザーがボタンを押すと、新しいピンがその場所にドロップされ、ユーザーが押したピン (さまざまな種類のピン) を削除したいと考えています。
基本的に、最初のピンはドラッグ可能で、ユーザーが適切な場所を見つけたら、それを「ロック」します。(ロックされたピンはいくつかの点で異なる動作をするため、古いピンを交換する必要があります)
とにかく、これは私が処理を行う方法です。[mapView removeAnnotation:view.annotation]; に到達すると、私が得るのは、「プログラム受信信号:「EXC_BAD_ACCESS」」だけです。
誰か助けてくれませんか?(問題は、新しい注釈が表示されるように表示されないことではありません。問題は、古い注釈が消えないことです)。編集: 提案に従ってコードを修正しました。
- (void) mapView:(MKMapView *)MapView
annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control {
LockedPotholeAnnotation *annotation = [[[LockedPotholeAnnotation alloc] initWithCoordinate:view.annotation.coordinate addressDictionary:nil]autorelease];
NSString *titleString = [NSString stringWithFormat:@"Pothole at %.4f, %.4f", view.annotation.coordinate.latitude, view.annotation.coordinate.longitude];
annotation.title = titleString;
[mapView addAnnotation:annotation];
//[annotation release];
NSLog(@"Added Pin");
NSLog(@"VA: %@", [view.annotation class]);
[mapView removeAnnotation:view.annotation];
//[mapView removeAnnotations:mapView.annotations];
[mapView setNeedsDisplay];
}