MKMapViewから注釈を削除しているときに問題が発生します。私はすでに同じものを検索し、非常に多くの答えを見つけましたが、満足のいく答えを見つけることができませんでした。以下は私のコードの要約です:
カスタムクラスをMyMapViewPointsとして作成し、1つの関数を
- initWithZTitle:(NSString *)title andCoordinate:(CLLocationCoordinate2D)location
注釈を追加したいときはいつでも、MyMapViewPointsのオブジェクトを1つ作成し、
[mapView addAnnotation:newAnnotation];
すべてのマップビューポイント(注釈)を削除したい場合は、次のコードを実行します。
for (int i =0; i < [mapView.annotations count]; i++)
{
if ([[mapView.annotations objectAtIndex:i] isKindOfClass:[MyMapViewPoints class]])
{
MyMapViewPoints *obj = (MyMapViewPoints *)[mapView.annotations objectAtIndex:i];
if(obj.type != 1)
[mapView removeAnnotation:[mapView.annotations objectAtIndex:i]];
}
}
ただし、一部の注釈ポイントはマップ上に残ります。6つのポイントを追加し、上記のコードを使用してすべてを削除しようとすると、2つのマップビューポイント(注釈)が保持されます。何か案は?