我已经有了这段代码来删除我的mkmapview中的注释(引脚)而不删除我的蓝点(userLocation)。问题是它删除了我在看似随机数字中添加的引脚。当它通过IBAction调用时,它会移除前5个然后再次单击它会删除下一个3,然后是下一个2,然后是最后一个。
按下时我需要它去除最新的针......等等。等
for (int i = 0;
i < [mapView.annotations count];
i++
)
{ if ([[mapView.annotations objectAtIndex:i] isKindOfClass:[MyAnnotation class]])
{
[mapView removeAnnotation:[mapView.annotations objectAtIndex:i]];
}
}
答案 0 :(得分:1)
问题是你在迭代它时修改annotation
集合。每次执行循环时,循环的终止条件[mapView.annotations count]
都会更改其值。这将导致不可预见的行为。你应该
removeAnnotations:
,答案 1 :(得分:0)
使用此代码
NSInteger *counter = [mapView.annotations count];
for (int i = 0; i < counter; i++ )
{
if ([[mapView.annotations objectAtIndex:i] isKindOfClass:[MyAnnotation class]])
{
[mapView removeAnnotation:[mapView.annotations objectAtIndex:i]];
}
}